버전 01
개발자가 직접만든 DispatcherServlet사용
com.spring.controller.common.DisspatcherServlet
<servlet-class>com.spring.controller.common.DispatcherServlet</servlet-class>
package com.spring.controller.common;
import java.io.IOException;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
// FrontController
// @ ▶ .xml : 서블릿 컨테이너(톰캣, 웹 서버)
public class DispatcherServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private HandlerMapping handler;
private ViewResolver viewResolver;
public void init() {
handler=new HandlerMapping();
viewResolver=new ViewResolver();
viewResolver.setPrefix("./");
viewResolver.setSuffix(".jsp");
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doAction(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doAction(request, response);
}
private void doAction(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String uri=request.getRequestURI();
String cp=request.getContextPath();
String commend=uri.substring(cp.length());
System.out.println("FC : "+commend);
Controller controller=handler.getController(commend);
String view = controller.execute(request, response);
if(view.contains(".do")) {
view=viewResolver.getView(view);
}
response.sendRedirect(view);
}
}
버전 02
Spring 프레임워크에서 제공하는 DispatcherServlet사용
org.springframework.web.servlet.DispatcherServlet
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
Spring 프레임워크에서 제공하는 인코딩 필터
servlet 상속 받은게 filter
filter는 모든 .do에 반응한다
not POJO(Servlet,Filter,Listener)객체등록은 서블릿 컨테이너가 담당
서블릿 컨테이너의 설정파일인 web.xml 에 등록해야함
직접 만든거엔 init있는데 안쓰니까 web.xml init 할곳이없다
DI(의존주입,init())을 위한 .xml(설정파일)이 필요함
dispatcher-servlet.xml
어플리케이션.xml 스키마가 같음
설정파일이 생긴거면 컨테이너가 생긴것
presentation layer 프레젠테이션 레이어(표현 계층)가 생겼다!
'Spring' 카테고리의 다른 글
Controller(Action) 모음 (0) | 2024.03.19 |
---|---|
SpringMVC 구조 개념 (0) | 2024.03.18 |
트랜잭션 (1) | 2024.03.16 |
DAO var.2 사용 (1) | 2024.03.15 |
DAO var.1 -> DAO var.2 설정 (0) | 2024.03.14 |