ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Web] 웹 애플리케이션 디렉토리 구조/ContextRoot/ContextPath
    카테고리 없음 2022. 4. 10. 17:29

    웹 애플리케이션 디렉토리 구조와 ContextRoot

     

    Maven 프로젝트 디렉토리 구조 -> 배포 후 -> Java Build Path 설정에 따라 웹 애플리케이션 디렉토리 구조로 변경됨

     

    webapp이느니 webcontent이느니는 웹 애플리케이션의 루트라는 것을 알려주는 것으로 배포 후 이름과는 아무련 연관이 없다. webapp,webcontent 요놈을 루트(ContextRoot)로 하위 디렉토리 구조를 설계하라는 의미

     

    프로젝트상 src/main/mainSubDirectory는 Java Build Path 설정에 포함되어 있지 않다.

    -> 배포 후 웹 애플리케이션 디렉토리 구조 내부에 포함 안됨

    (임시 배포 확인)

    워크스페이스\.metadata\.plugins\org.eclipse.wst.server.core\tmp숫자\wtpwebapps\프로젝트명

     

    프로젝트상 src/main/java, src/main/resources는 Java Build Path 설정에 따라 루트/WEB-INF/classes에 매칭되어 들어간다.

    프로그램이 돌아갈 때(임시 배포) 알기 쉽게 루트를 프로젝트 이름으로 만들어준다.


    루트/WEB-INF/web.xml는 그대로

     

    루트/WEB-INF/lib에는 depency에 포함된 라이브러리들이 포함된다.


    프로젝트상 루트 하위 모든 파일들도 포함된다.


    ContextPath

    하나의 톰캣에서 여러 웹 애플리케이션을 돌릴 수 있으므로 웹 애플리케이션을 구분하기 위해 ContextPath를 사용

     

    Maven Project 생성시 기본으로 ContextPath가 프로젝트명(SpringProject)으로 설정된다.

    ContextPath는 "SpringProject" -> localhost:8080/SpringProject 의 지점이 ContextRoot가 된다.

    -> localhost:8080/SpringProject이 웹 어플리케이션 디렉토리 구조의 루트가 된다.


    루트/static/test.html

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="EUC-KR">
    <title>Insert title here</title>
    </head>
    <body>
    	루트/static/test.html<br>
    </body>
    </html>

     

     localhost:8080/SpringProject/static/test.html

    하나의 톰캣으로 여러 애플리케이션을 돌리지 않는 이상 귀찮게 ContextPath를 입력할 필요가 없으니 /로 바꿔준다. 

    그러면 localhost:8080 이 ContextRoot가 된다. 

    (참고로 ContextPath를 변경하면 톰캣에서 웹 애플리케이션을 내렸다가 다시 올려야 하는 것 같다)


    WEB-INF 디렉토리는 서버쪽에서만 사용되는 디렉토리로 사용자가 요청할 수 없다. 

     

    댓글

Designed by Tistory.