join.jsp
<style>
.onIdCheck{color:blue; font-weight: 600;}
.offIdCheck{color:red; font-weight: 600;}
</style>
function checkBtn(){
var id=$("#id").val();
$.ajax({
type:"post",
url:"memberIdCheck.do",
data:{"id":id},
dataType:"json",
//contentType:'application/json',
success:function(data){
console.log(data[0].result);
if(data[0].result=='s-selectOne'){
$("#idCheck").addClass("onIdCheck");
//text 띄우는 색 지정
$("#idCheck").removeClass("offIdCheck");
$("#idCheck").text("사용가능한 아이디 입니다.");
idFlag=1;
}else{
$("#idCheck").addClass("offIdCheck");
$("#idCheck").removeClass("onIdCheck");
$("#idCheck").text("아이디를 사용할 수 없습니다.");
alert("아이디를 사용하고 있습니다. 다른 아이디를 사용하세요");
idFlag=0;
}
},
error:function(){
alert("시스템 오류로 인해 확인이 되지 않았습니다. 다시 입력해주세요.");
idFlag=0;
}
}); //ajax
}// checkBtn()
<dd>
<input type="text" id="id" name="id" minlength="4" maxlength="16" required/>
<input type="button" onclick="checkBtn()" value="중복확인"/>
<span id="idCheck">아이디 중복확인을 해주셔야 합니다.</span>
</dd>

Fcontroller.java
join.jsp에서
function checkBtn(){
$.ajax({
url:"memberIdCheck.do",
data:{"id":id}, /*id를memberIdCheck.do에 보내줌*/
dataType:"json",
success:function(data)
memberIdCheck.do에서 정보를 받아오는데
json data 타입으로 가져온다.
System.out.println("doAction");
request.setCharacterEncoding("utf-8"); //받아온 데이터 중 한글도 깨지지않게 (post로 들어오는거 한글처리)
String uri = request.getRequestURI();
String conPath = request.getContextPath(); //프로젝트 이름
String fName = uri.substring(conPath.length() + 1); //프로젝트 이름/ <- 이거 제외하고 그 뒤의 문자를 받아오는 것
String url = "";// null처리 대신 공백처리하세요
Mservice mservice=null;
System.out.println("파일이름:"+fName);
else if(fName.equals("memberIdCheck.do")) { //아이디 중복 체크 실행
mservice = new MserviceSelectOne(); //같은 아이디가 있는지 없는지 체크
mservice.execute(request, response);
JSONArray jarray =new JSONArray(); //[]
JSONObject json=new JSONObject(); //{}
json.put("result", request.getAttribute("result")); //{"result":"s-selectOne"}
jarray.add(json);//[{"result":"s-selectOne"}]
response.setContentType("application/json; charset=utf-8;");//json형태로 보내준다
PrintWriter writer =response.getWriter();
//바이트를 문자 형태를 가지는 객체로 바꿔준다.
//클라이언트에게 문자 형태로 응답을 하고 싶기 때문에
//PrintWriter 클래스 객체를 정의하고 getWriter() 메소드를 통해 인스턴스를 얻었다.
//기본값은 text/html
writer.println(jarray.toJSONString()); //string으로 갈거긴 한데 json 파일로 여겨
writer.close();
return;
}
//----------------------------------------------------------------
//<MserviceSelectOne>//
MemberDao mdao=new MemberDao();
String id=request.getParameter("id");//ajax에서 타고 온 데이터
MemberVo mvo=mdao.selectOne(id);
if(mvo!=null) { //중복된 아이디가 있다면
request.setAttribute("result", "f-selectOne");
//중복체크 결과-실패(다른 아이디 사용 해야함)
}else {//없다면 중복체크 결과-성공 (해당 아이디 사용가능)
request.setAttribute("result", "s-selectOne");
}
//----------------------------------------------------------------
//<selectOne(String id2)>//
try {
conn=getConnection();
query="select * from member where id=?";
pstmt=conn.prepareStatement(query);
pstmt.setString(1, id2);
rs =pstmt.executeQuery();
while(rs.next()) {
id=rs.getString("id");
pw=rs.getString("pw");
name=rs.getString("name");
mvo=new MemberVo(id);
}
return mvo;