Front Controller는 맵핑 주소를 관리하는 java 파일이 된다.
맵핑 주소로 접근 할 때 모든 접근을 Front Controller를 통하여 해당하는 컨트롤러에 이동시켜준다.
예전에 했던 필터와 유사
예를 들어 주소가 me로 끝나는 맵핑 주소는 항상 위의 컨트롤러를 지나게 된다.
다음 예를 보자.
package com.kh.mb.frontController;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("*.me")
public class MemberFrontController extends HttpServlet {
private static final long serialVersionUID = 1L;
public MemberFrontController() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=utf-8");
String uri = request.getRequestURI();
System.out.println(uri);
String action = uri.substring(uri.lastIndexOf("/") + 1, uri.lastIndexOf(".me"));
System.out.println("action : " + action);
RequestDispatcher rd = null;
switch (action) {
case "login":
rd = request.getRequestDispatcher("login");
break;
case "logout":
rd = request.getRequestDispatcher("logout");
break;
case "showInsertForm":
rd = request.getRequestDispatcher("showInsertForm");
break;
case "minsert":
rd = request.getRequestDispatcher("minsert");
break;
}
rd.forward(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
필터 클래스에서 했던것처럼 문자 형식을 UTF-8로 처리해주고
맵핑 주소 문자열을 분리해서 Switch Case 문으로 해당하는 컨트롤러로 연결시킨다.
'Spring Framework, MyBatis > 02. 사용법' 카테고리의 다른 글
[MyBatis]02-10. Mybatis에서 사용하는 xml 키워드 간단 설명 (0) | 2019.01.27 |
---|---|
[MyBatis]02-09. Mybatis를 이용한 SQL 쿼리 관리 (XML 파일 이용) (0) | 2019.01.20 |
[MyBatis]02-07. 인터페이스를 통한 Framework 구조 (0) | 2019.01.20 |
[MyBatis]02-06. JSP Exception 오류 처리 (0) | 2019.01.20 |
[MyBatis]02-05. MyBatis에서 바꿀 MVC 폴더 구조 (0) | 2019.01.20 |