1. controller를 하나로 모아줄 servlet파일을 생성해준다.
기존 코드에서 컨트롤러로 보내주던 파일명 뒤에 .do를 붙여준다.
서블릿 파일에서 맵핑 부분을 '*.do'로 바꿔준다. (.do를 붙여주는 것은 하나의 약속같은 것임)
@WebServlet("*.do")
2. 누가 호출했는지를 구분하기 위해서 url에서 파일명을 가져와준다.
String uri = request.getRequestURI();
String path = request.getContextPath();
String command = uri.substring(path.length()+1);
uri에 '/프로젝트명/컨트롤러.do' 로 담아진다.
path에는 '/프로젝트명'이 담아진다.
'컨트롤러.do'에서 호출했다는 정보를 알아야하기 때문에 uri에서 path를 뺀 값만 가져오면 된다.
path.length() 는 '/프로젝트명' 이므로 uri에서 path.length()를 빼주면 '/컨트롤러.do'가 남게 된다. 앞에 슬래쉬까지 같이 빼주기 위해서 path.length()+1을 해주고 command 변수에 담아준다.
if(command.equals("LoginCon.do")) {
request.setCharacterEncoding("utf-8");
String email = request.getParameter("email");
String pw = request.getParameter("pw");
memberDTO dto1 = new memberDTO(email, pw);
memberDAO dao = new memberDAO();
memberDTO dto = dao.Login(dto1);
String nextpage = "";
if(dto != null) {
HttpSession session = request.getSession();
session.setAttribute("dto", dto);
response.sendRedirect("main.jsp");
}else {
response.sendRedirect("LoginFalse.jsp");
}
}
같은 방법으로 다른 컨트롤러들도 모두 else if문으로 가져와준다.