extends HttpServlet 할 수도 있지만 Controller의 Servlet 기능을 분리한 후

Spring MVC가 가지고 있는 Dispatcher Servlet이 그 기능을 하게 할 것이다.

 

Dispatcher Servlet class에 url mapping을 해야하는데 남이 만든 Servlet이기때문에 소스를 가지고 있지 않다.

때문에 어노테이션이 아니라 xml로 설정을 해야함.

 

Maven Dependencies에 보면 DispatcherServlet이 있다.

오른쪽 클릭 -> Copy Qualified name 하면 패키지명과 클래스명을 한번에 받아올 수가 있음.

복사한 클래스들은 FrontController역할을 하기 위한 Servlet 클래스이며, web.xml에서 사용하게 된다.

(spring이 제공하고 있는 Controller임)

 

아래의 코드처럼 모든 URL을 받게하겠다고 web.xml에 설정을 해둠.

web.xml

만약 index.jsp라는 요청이 오게되면 Dispatcher는 적절한 URL에 맞는 resource를 배분해줘야하는데

그러기 위해서는 web.xml이 가지고있던 Spring이 갖는 mapping 정보가 필요하다.

즉, mapping 정보를 가지고 있어야만 에러가 나지 않고 mapping을 할 수 있는데

*-servlet.xml이 mapping이 mapping정보를 가지고 있다.

servlet설정에서 명명해준 name으로 name-servlet.xml 파일을 만들어서 아래처럼 설정한다.

dispatcher-servlet.xml

IndexControlle.java에서 Controller라는 interface를 구현해 handleRequest를 작성해준다.

사용자가 /Index를 요청하게되면 해당 Controller가 실행되면서 handleRequest 함수가 실행된다.

IndexController.java

 

+ Recent posts