[Servlet] - *.do 서블릿과 FrontController 패턴
○ *.do 서블릿과 FrontController 패턴 |
실무에서 자주 쓰이며, 하나의 요청 jsp -> 하나의 요청 처리 서블릿으로 낭비되지 않고 다양한 요청들을 한 곳에 몰아, 개발 및 유지보수 효율성에 아주 좋다! 아래 그림에서 'DAO -> DB' 이다 // frontControllerEx.jsp <body> <a href="insert.do">데이터 삽입</a></br> // 아래 href는 같은 주소인 것 <a href="<%=request.getContextPath()%>/select.do">데이터 선택</a></br> <a href="update.do">데이터 수정</a></br> <a href="<%=request.getContextPath()%>/delete.do">데이터 삭제</a> </body> // FrontController.java(서블릿) @WebServlet("*.do") // 확장자 패턴!!! public class FrontController extends HttpServlet { private static final long serialVersionUID = 1L;
public FrontController() { super(); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("doPost 실행"); doGet(request, response); // doGet() 실행해라 } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("doGet 실행"); actionDo(request, response); // actionDo() 실행해라 } private void actionDo(HttpServletRequest request, HttpServletResponse response) { System.out.println("actionDo 실행");
String uri = request.getRequestURI(); System.out.println("uri : " + uri); // 출력시 /testBoard/update.do String conPath = request.getContextPath(); System.out.println("context path : " + conPath); // 출력시 /testBoard (프로젝트명) String command = uri.substring(conPath.length()); System.out.println("command : " + command); // 출력시 /update.do String viewPage = null;
if(command.equals("/insert.do")) { System.out.println("insert.do 실행됨"); viewPage = "list.jsp"; } else if(command.equals("/select.do")) { System.out.println("select.do 실행됨"); } else if(command.equals("/update.do")) { System.out.println("update.do 실행됨"); } else if(command.equals("/delete.do")) { System.out.println("delete.do 실행됨"); }
// 포워딩 구성 해당 viewPage로... RequestDispatcher dispatccher = request.getRequestDispatcher(viewPage); dispatcher.forward(request, response); } } |
'Servlet' 카테고리의 다른 글
[Javascript] - javascript 이용하여 패스워드 불일치 체크하기 (0) | 2018.06.29 |
---|---|
[Servlet] - 서블릿 활용한 회원가입 구현하기 (0) | 2018.06.29 |
[Servlet] - MVC2 Servlet Model 구성도 (0) | 2018.06.26 |
[Servlet] - 서블릿 특정 데이터 전체 공유 ServletContext (0) | 2018.06.26 |
[Servlet] - 서블릿에서 초기화 파라매터 지정 및 사용하기 WebInitParam (0) | 2018.06.26 |