본문 바로가기
Web Programming/JAVA MVC

Servlet / Web.xml 에서 controller 연결

by hyeon-H 2021. 6. 3.
728x90
반응형

Web.xml 이란?

Web Application의 배포 서술자(DD, Deployment Descriptor)이다.
웹 애플리케이션의 배포 관련 설정을 위해 작성하는 파일이고, WEB-INF/web.xml 파일에 위치하고,
서블릿과 JSP를 어떻게 실행하느냐에 관한 정보가 들어있다.
DD는 Tomcat 서버를 가동할 때 읽혀진다.

 

 

web.xml

<web-app> </web-app>
  web.xml의 시작과 종료를 한다.

<display-name>apiBoard</display-name>
  애플리케이션의 표시이름을 설정하는 부분이다.
  이클립스에서는 기본적으로 프로젝트명이 설정되며, 필요하다면 수정 가능하다.

<welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
</welcome-file-list>
  <welcome-file-list></welcome-file-list>는 웹 서버 URL경로로 처음 들어왔을 때 클라이언트에 처음으로 노출되는 파일들을 명시해 놓은 리스트이다.( 웹 애플리케이션 요청 시 자동으로 보여줄 파일을 지정해둔 리스트)
  애플리케이션이 실행되면 <welcome-file></welcome-file> 안에 있는 파일 중 하나를 보여준다.

 

애플리케이션에서 URL경로의 이동이 있을 경우 web.xml을 통해서 controller로 보내게 만들것이다.
여기서는 모든 경우를 FrontController로 보내고 FrontController에서 다시 어디로 보내질것인지를 정할것이다.

먼저 <Servlet>을 추가하여 서블릿 맵핑을 할 것이다.

...
  <servlet>
    <servlet-name>controller</servlet-name>
    <servlet-class>controller.FrontController</servlet-class>			
  </servlet>

  <servlet-mapping>
    <servlet-name>controller</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
  
</web-app>

 

<servlet>내부의 <servlet-name>
<servlet-mapping>내부의 <servlet-name>은 같은 값이다.
이 두 개체를 연결시키는 역할을 한다.

<servlet-class>는 servlet의 경로를 나타낸다.
패키지경로부터 클래스경로까지 적으면 된다.
즉, servlet인 FrontController의 경로를 적으면된다.

<servlet-mapping><servlet-class>로 안내해줘야 할 가상의 경로 값을 정해준다.
<url-pattern>으로 *.do 의 값을 지정해주면 .do로 끝나는 경로를 FrontController에게 안내해주는 것이다.

...

전체적으로 보면 처음 어플리케이션이 실행되면 web.xml을 읽고
<welcome-file-list>안의 <welcome-file>들 중 하나를 출력한다.

그리고 url이 "~~~~.do" 들어오는 것을 servlet인, FrontController에게 위임하여 처리하도록 설정해 놓은 것이다.

 

728x90
반응형