ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 서블릿(Servlet) 경로 (Context path, Context root) , web.xml
    Web/Servlet 2018. 9. 4. 16:48

    서블릿이 익숙하지 않은 경우 파일 경로에 대한 고민을 분명히 할 것이다. 필수적인 위치명 두가지 Context path와 Context root 에 대해 설명.
    Context Path : 프로젝트 명을 의미하며 url의 호스트, 포트명 다음에 나온다. 
    Context root : Content directory의 경로. 해당 경로에 메타 정보와 웹 정보를 관리하는 META-INF와 WEB-INF 파일이 자동생성되며 JSP파일은 여기 하위에 저장되어야 경로를 찾을 수 있다.


    Dynamic web project 생성시 마지막 페이지이다. 
    작성 중 url mappings는 path로 설정했다. 따라서 이를 url에 넣어줘야 한다.
    Context root와 Content directory의 경로를 설정할 수 있는 페이지고,
    jsp 파일은 Content directory 하위에 폴더로 관리해 경로를 설정한다.

    getRequestDispatcher 메소드의 파라미터로 브라우저에 출력 원하는 jsp 파일의 경로를 입력하는데 Content directory 이후부터 작성했다.

    /view/path.jsp 파일. "파일의 경로를 잘 찾았네요!" 문자열이 출력되어야 한다.





    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
      <display-name>pathExam</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>
      <servlet>
        <description></description>
        <display-name>PathExamServlet</display-name>
        <servlet-name>PathExamServlet</servlet-name>
        <servlet-class>com.naver.blog.PathExamServlet</servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>PathExamServlet</servlet-name>
        <url-pattern>/path</url-pattern>
      </servlet-mapping>
      <servlet>
        <description></description>
        <display-name>IndexServlet</display-name>
        <servlet-name>IndexServlet</servlet-name>
        <servlet-class>com.naver.blog.IndexServlet</servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>IndexServlet</servlet-name>
        <url-pattern>/</url-pattern>
      </servlet-mapping>
    </web-app>
    

    중요한 것이 맨 위의 display-name url-pattern이다.
    display-name은 프로젝트명으로 자동등록되고 이후 servlet들에 적지 않아도 자동으로 추가된다. 
    "display-name/url-pattern" 형태의 url을 등록해놓고 그에 해당하는
    서블릿이 매핑되어 수행된다는 의미이다.
    이곳에 없는 url이라면 해당 프로젝트가 수행할 수 없는 url이기에 404 에러가 나온다.


    'Web > Servlet' 카테고리의 다른 글

    서블릿(Servlet) 예제  (0) 2018.09.04
    (Servlet) 서블릿 필터 (Filter) 예제  (0) 2018.09.04
Designed by Tistory.