스프링이 제공하고 있는 컨트롤러는 프론트 컨트롤러이다.
이것을 설정하기 위한 파일은 Dispatcher-servlet.xml이다.
이것의 의미와 용도를 알아보자

Model : ${data}
View : index.jsp
Contoroller : ?



JSP로만 할때는
public class IndexController extends HttpServlet{
}
로 작성했으나 스프링을 쓸때는 이렇게 하지 않겠다.
서블릿기능을 다 분리해서

Dispatcher-servlet.class이 대신 할 것이다.

Controller는 POJO로 만들것이고 Dispatcher는 이미 만들어져 있고
지금까지 서블릿 프로그램하면서 어노테이션을 배웠지만 Dispatcher는 소스가 없기때문에 어노테이션을 할 수 없다.
그래서 설정할때는 .xml로 할 수 밖에 없다.
Dispatcher서블릿 클래스이다
Dispatcher서블릿 클래스에 URL맵핑을 해야하는데
이 URL맵핑을 web.xml에서 한다.

URL 맵핑을 하기 위해서 Copy
그 후 web.xml로 간다

뒤에 붙은 .class는 무조건 필히 꼭 지워줘야 한다.

<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
이렇게 하면 서블릿 설정 끝이다.
여기서 보면 우린 프론트 컨트롤러를 만든거다.
이 프론트 컨트롤러는 모든 주소를 받아야 한다.
그리고 어떠한 요청이 와도 프론트 컨트롤러가 매핑해주지 않은 URL은 출력되면 안된다

즉 위 이미지처럼 index.jsp를 요청해서 Hi라는 문서가 회신 되선 안된다.
그럼 무슨 설정을 더 해주어야 하냐면

<url-pattern>/</url-pattern>
로 설정해버리면 모두 통과가 되어버린다.
여기서 <url-pattern>/*</url-pattern>
예외없이 모든걸 다 <servlet-name>dispatcher</servlet-name>라고 설정해버리면
프론트 컨트롤러가 모든걸 다 받게 된다.

이렇게하면 오류가 뜨는걸 볼 수 있다.

web.xml에서 Dispatcher로 index.xml 정보 보냄
Dispatcher에서 index.xml에 해당하는 URL매핑 정보를 *-servlet.xml 파일에서 찾아야 한다.
(스프링이 갖고 있는 매핑 정보가 필요하다.)
우린 아직 *-servlet.xml 설정 파일을 안 만들었기 때문에 오류가 뜬다.



*-servlet.xml
에서
dispatcher는 우리가 web.xml에 지정한 이름이고
-servlet.xml는 약속된 이름이다.

여기 매핑 정보는 뭘 넣어야 하는지는 다음 강의에 계속 됩니다.
출처:
https://www.youtube.com/watch?v=5IZyNtkOisI&list=PLq8wAnVUcTFUHYMzoV2RoFoY2HDTKru3T&index=31
'Spring' 카테고리의 다른 글
| STS4 JRE 추가 및 변경하기 (0) | 2022.01.03 |
|---|---|
| Spring MVC (스프링 웹 MVC) 강의 06 - 스프링 컨트롤러 IndexController 작성하기 (0) | 2022.01.03 |
| Spring MVC (스프링 웹 MVC) 강의 04 - Dispatcher Servlet 라이브러리 설정하기 (0) | 2022.01.03 |
| Spring MVC (스프링 웹 MVC) 강의 03 - 메이븐을 이용한 기본 웹 프로젝트 생성하기 (0) | 2022.01.02 |
| Spring MVC (스프링 웹 MVC) 강의 02 - 실습환경 준비하기 (0) | 2022.01.02 |
댓글