본문 바로가기
목차
Spring

Spring MVC (스프링 웹 MVC) 강의 05 - dispatcher-servlet.xml 파일

by 지각생 2022. 1. 3.
728x90

스프링이 제공하고 있는 컨트롤러는 프론트 컨트롤러이다.

이것을 설정하기 위한 파일은 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 

 

 
728x90

댓글