MVC06 WAR file 다운로드 후 이클립스 실행 > Project Explorer 빈 공간 우 클릭 > Import > WAR file > 다운로드 받은 WAR file 찾고, Web project이름을 MVC07로 변경 후 Finish.
## Context 등록
Servers 탭 > 톰캣 우 클릭 > Add and Remove 클릭 후 Available에 있는 MVC07을 선택 후 Add 클릭하여 Configured로 이동 후 Finish.
## Ajax (Asynchronous Javascript And Xml)
Jquery에서 제공해주는 $.ajax() 를 이용, 클라이언트와 서버간의 통신 시 비동기 전송으로 데이터를 주고 받는 방법
페이지 이동 없이 데이터 처리 가능
## 아이디 중복확인 기능 작업
회원 가입 시 화면 이동 없이 중복확인 버튼을 클릭하여 중복여부 확인
1. memberRegister.jsp
아이디 중복확인 버튼 추가.
중복확인 버튼 클릭에 따른 스크립트 구현.
// 아이디 중복체크 버튼 클릭 시 실행
function doubleCheck() {
if ( $("#id").val()=='' ) {
alert("아이디를 입력하세요.");
$("#id").focus();
return;
}
var id = $("#id").val();
$.ajax({
url : "<c:url value='/memberDbcheck.do'/>", // 서버 경로(요청 url)
type : "POST", // GET, POST
data : {"id" : id}, // 서버 요청 시 넘기는 값
success : dbCheck, // callback 함수
error : function() { // 실패 시.
alert("error");
}
});
}
// 아이디 중복체크 ajax 성공 시 실행.
function dbCheck(data) {
if ( data != "null" ) {
alert("중복된 아이디 입니다.");
$("#id").focus();
} else {
alert("사용 가능한 아이디 입니다.");
$("#id").focus();
}
}
2. HandlerMapping
package kr.bit.frontcontroller;
import java.util.HashMap;
import kr.bit.controller.Controller;
import kr.bit.controller.*;
public class HandlerMapping {
private HashMap<String, Controller> mappings;
public HandlerMapping() {
mappings=new HashMap<String, Controller>();
mappings.put("/memberList.do", new MemberListController());
mappings.put("/memberInsert.do", new MemberInsertController());
mappings.put("/memberRegister.do", new MemberRegisterController());
mappings.put("/memberContent.do", new MemberContentController());
mappings.put("/memberUpdate.do", new MemberUpdateController());
mappings.put("/memberDelete.do", new MemberDeleteController());
mappings.put("/memberLogin.do", new MemberLoginController());
mappings.put("/memberLogout.do", new MemberLogoutController());
mappings.put("/memberDbcheck.do", new MemberDbcheckController());
}
public Controller getController(String key) { // key=>/memberList.do
return mappings.get(key);
}
}
3. MemberDbcheckController 생성
프로젝트 > src > kr.bit.controller > class 클릭 후 MemberDbcheckController 이름으로 생성
package kr.bit.controller;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import kr.bit.model.MemberDAO;
public class MemberDbcheckController implements Controller {
@Override
public String requestHandler(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// $.ajax(); 에서 온 요청 처리.
String id = request.getParameter("id"); // {"id" : id}
MemberDAO dao = new MemberDAO();
String dbDouble = dao.memberDbcheck(id);
response.getWriter().print(dbDouble);
return null;
}
}