MVC_Board - src/main/java - controller - MemberFrontController.java

모쿠모쿠·2022년 8월 22일

JSP

목록 보기
119/151
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);
}

}

profile
Hello, Velog!

0개의 댓글