package controller;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import action.Action;
import action.MemberCheckDuplicateIdAction;
import action.MemberJoinProAction;
import action.MemberListAction;
import action.MemberLoginProAction;
import action.MemberLogoutProAction;
import vo.ActionForward;
//서블릿 주소가 xxx.me 로 끝날 경우 MemberFrontController 클래스로 해당 요청이 전달됨
@WebServlet("*.me")
public class MemberFrontController extends HttpServlet {
// GET 방식 or POST 방식에 따른 처리를 별도로 구분하지 않고 공통으로 처리하기 위해
// doProcess() 메서드를 정의하고 doGet(), doPost() 메서드에서 호출
protected void doProcess(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("MemberFrontController");
// POST 방식 요청에 대한 한글 처리
request.setCharacterEncoding("UTF-8");
// 서블릿 주소 추출
String command = request.getServletPath();
System.out.println("command : " + command);
// Action 클래스 인스턴스들을 공통으로 관리하는 Action 타입 변수 선언
Action action = null;
// 포워딩 정보를 관리하는 ActionForward 타입 변수 선언
ActionForward forward = null;
// 추출된 서블릿 주소를 if문을 사용하여 판별하고 각 주소에 따른 액션(작업) 요청
// ex) "/MemberJoinForm.me" 일 경우 member 폴더 내의 member_join.jsp 페이지로 이동
if(command.equals("/MemberJoinForm.me")) {
// 포워딩 정보를 관리하는 ActionForward 객체 생성 후 URL 및 포워딩 방식을 저장
forward = new ActionForward();
forward.setPath("member/member_join.jsp");
forward.setRedirect(false); // Dispatcher 방식(생략 가능)
} else if(command.equals("/MemberJoinPro.bo")) {
try {
// MemberJoinProAction 클래스 인스턴스 생성 후 execute() 메서드 호출
action = new MemberJoinProAction();
forward = action.execute(request, response);
} catch (Exception e) {
e.printStackTrace();
}
} else if(command.equals("/MemberCheckIdForm.me")) {
forward = new ActionForward();
forward.setPath("member/check_id.jsp");
forward.setRedirect(false);
} else if(command.equals("/CheckDuplicateId.me")) {
action = new MemberCheckDuplicateIdAction();
try {
forward = action.execute(request, response);
} catch (Exception e) {
e.printStackTrace();
}
} else if(command.equals("/MemberJoinPro.me")) {
action = new MemberJoinProAction();
try {
forward = action.execute(request, response);
} catch (Exception e) {
e.printStackTrace();
}
} else if(command.equals("/MemberLoginForm.me")) {
forward = new ActionForward();
forward.setPath("member/member_login.jsp");
forward.setRedirect(false);
} else if(command.equals("/MemberLoginPro.me")) {
action = new MemberLoginProAction();
try {
forward = action.execute(request, response);
} catch (Exception e) {
e.printStackTrace();
}
} else if(command.equals("/MemberLogout.me")) {
action = new MemberLogoutProAction();
try {
forward = action.execute(request, response);
} catch (Exception e) {
e.printStackTrace();
}
} else if(command.equals("/AdminMain.me")) {
forward = new ActionForward();
forward.setPath("member/member_list.jsp");
forward.setRedirect(false);
} else if(command.equals("/MemberListPro.me")) {
action = new MemberListAction();
try {
forward = action.execute(request, response);
} catch (Exception e) {
e.printStackTrace();
}
}
// --------------------------------------------------------------------------------------
// ActionForward 객체에 저장된 포워딩 정보에 따른 포워딩 작업 수행하기 위한 공통코드 작성
if(forward != null) { // ActionForward 객체가 null 이 아닐 경우에만 포워딩 작업 수행
// Redirect 방식 vs Dispatcher 방식 판별하여 각 방식에 대한 포워딩 작업 수행
if(forward.isRedirect()) { // Redirect 방식
response.sendRedirect(forward.getPath());
} else { // Dispatcher 방식
RequestDispatcher dispatcher = request.getRequestDispatcher(forward.getPath());
dispatcher.forward(request, response);
}
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doProcess(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doProcess(request, response);
}
}
package controller;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import action.Action;
import action.MemberCheckDuplicateIdAction;
import action.MemberJoinProAction;
import action.MemberListAction;
import action.MemberLoginProAction;
import action.MemberLogoutProAction;
import vo.ActionForward;
//서블릿 주소가 xxx.me 로 끝날 경우 MemberFrontController 클래스로 해당 요청이 전달됨
@WebServlet("*.me")
public class MemberFrontController extends HttpServlet {
// GET 방식 or POST 방식에 따른 처리를 별도로 구분하지 않고 공통으로 처리하기 위해
// doProcess() 메서드를 정의하고 doGet(), doPost() 메서드에서 호출
protected void doProcess(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("MemberFrontController");
// POST 방식 요청에 대한 한글 처리
request.setCharacterEncoding("UTF-8");
// 서블릿 주소 추출
String command = request.getServletPath();
System.out.println("command : " + command);
// Action 클래스 인스턴스들을 공통으로 관리하는 Action 타입 변수 선언
Action action = null;
// 포워딩 정보를 관리하는 ActionForward 타입 변수 선언
ActionForward forward = null;
// 추출된 서블릿 주소를 if문을 사용하여 판별하고 각 주소에 따른 액션(작업) 요청
// ex) "/MemberJoinForm.me" 일 경우 member 폴더 내의 member_join.jsp 페이지로 이동
if(command.equals("/MemberJoinForm.me")) {
// 포워딩 정보를 관리하는 ActionForward 객체 생성 후 URL 및 포워딩 방식을 저장
forward = new ActionForward();
forward.setPath("member/member_join.jsp");
forward.setRedirect(false); // Dispatcher 방식(생략 가능)
} else if(command.equals("/MemberJoinPro.bo")) {
try {
// MemberJoinProAction 클래스 인스턴스 생성 후 execute() 메서드 호출
action = new MemberJoinProAction();
forward = action.execute(request, response);
} catch (Exception e) {
e.printStackTrace();
}
} else if(command.equals("/MemberCheckIdForm.me")) {
forward = new ActionForward();
forward.setPath("member/check_id.jsp");
forward.setRedirect(false);
} else if(command.equals("/CheckDuplicateId.me")) {
action = new MemberCheckDuplicateIdAction();
try {
forward = action.execute(request, response);
} catch (Exception e) {
e.printStackTrace();
}
} else if(command.equals("/MemberJoinPro.me")) {
action = new MemberJoinProAction();
try {
forward = action.execute(request, response);
} catch (Exception e) {
e.printStackTrace();
}
} else if(command.equals("/MemberLoginForm.me")) {
forward = new ActionForward();
forward.setPath("member/member_login.jsp");
forward.setRedirect(false);
} else if(command.equals("/MemberLoginPro.me")) {
action = new MemberLoginProAction();
try {
forward = action.execute(request, response);
} catch (Exception e) {
e.printStackTrace();
}
} else if(command.equals("/MemberLogout.me")) {
action = new MemberLogoutProAction();
try {
forward = action.execute(request, response);
} catch (Exception e) {
e.printStackTrace();
}
} else if(command.equals("/AdminMain.me")) {
forward = new ActionForward();
forward.setPath("member/member_list.jsp");
forward.setRedirect(false);
} else if(command.equals("/MemberListPro.me")) {
action = new MemberListAction();
try {
forward = action.execute(request, response);
} catch (Exception e) {
e.printStackTrace();
}
}
// --------------------------------------------------------------------------------------
// ActionForward 객체에 저장된 포워딩 정보에 따른 포워딩 작업 수행하기 위한 공통코드 작성
if(forward != null) { // ActionForward 객체가 null 이 아닐 경우에만 포워딩 작업 수행
// Redirect 방식 vs Dispatcher 방식 판별하여 각 방식에 대한 포워딩 작업 수행
if(forward.isRedirect()) { // Redirect 방식
response.sendRedirect(forward.getPath());
} else { // Dispatcher 방식
RequestDispatcher dispatcher = request.getRequestDispatcher(forward.getPath());
dispatcher.forward(request, response);
}
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doProcess(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doProcess(request, response);
}
}