* 본 글은 [뉴렉처]의 Servlet&JSP 프로그래밍 강의를 듣고 정리한 글입니다.
2020 Servlet&JSP 프로그래밍
www.youtube.com
Context 추가하기
컨텍스트(Context)
- 개발자가 정한 위치에 웹 애플리케이션을 생성한 후 그 위치를 server.xml에 등록해놓고 톰캣을 실행하는 개발 방식이 있음. 이때 server.xml에 등록하는 웹 애플리케이션을 Context라 부름
- Context 설정은 Tomcat에서 구동되는 하나의 웹 어플리케이션 자체의 설정을 의미. 주요 설정으로 ContextPath, Application 디렉토리 설정이 있음
- 서비스의 규모 증가 > 파일 수 증가 > 디렉토리 수 증가하면서 각각의 디렉토리 별로 서비스를 만드려고 하면 문제가 발생 > ROOT에서는 중심에 해당되는 큰 틀만 만들고 각각의 내용들은 아예 ROOT가 아닌 다른 곳으로 떼서 맡기기(Context를 활용)
- 서비스 맥락은 유지하되 만드는 디렉토리나 서비스는 별개로 유지 (디렉토리가 다르지만 Context path를 붙여 같은 디렉토리의 하위 디렉토리에서 돌아가는 것처럼 보이게 하는 것)
- 예: root 디렉토리와 academy는 별개의 디렉토리인데, /academy라는 context path를 설정해 마치 academy 디렉토리가 root 디렉토리 밑에서 서비스를 제공하는 것처럼 보이게 함
- 물리적으로는 두 개의 사이트지만 합쳐서 마치 ROOT 사이트의 디렉토리에서 사용되는 것처럼, Context path가 Root 경로 밑에 붙어서 Context의 서비스가 돌아가게끔 함
- 다른 곳에서는 context 대신 가상경로, 가상사이트라고 하기도 함
컨텍스트 패스(Context Path)
- WAS에서 웹 어플리케이션을 구분하기 위한 Path (webapps 디렉토리>Root 디렉토리에 없는 가상 디렉토리)
- 이클립스에서 프로젝트를 생성하면 자동으로 server.xml에 추가되어 서버를 구동시키면 자동으로 잡히는 경로
- http://IP(or hostname):Port/context/리소스들
- 예: localhost:80/admin/index
/dealer/…
/community/…
/academy/…
Context Path 지정하는 방법
- 1) ROOT 디렉토리에 ITWeb이라는 디렉토리를 만들고 그 안에 news.txt 파일 생성
- 2) 서비스 규모가 증가했다고 가정하고 ITWeb 디렉토리를 ROOT 외부로 꺼내옴
- 3) Context 설정
- Tomcat 폴더 > conf 폴더 > server.xml의 Host 태그 안에 context path 지정
- Context path: ROOT 디렉토리에 존재하지 않는 가상의 경로 (브라우저에 입력할 context를 설정해야 함)
- docBase: ITWeb 디렉토리의 실제 경로
<Host name="localhost" appBase="d:\\home ">
<Context path="academy"
docBase="C:\\DEV\\apache-tomcat-9.0.75\\webapps\\ITWeb" privileged="true"/>
- 4) 서버의 구성 설정을 바꿨기 때문에 Tomcat 서버 재가동 (startup.bat 껐다 켜기)
- 5) 브라우저에 localhost:8090/it/news.txt 입력
- 결과
주의할 점
- server.xml에서 Host가 하나일 경우엔 server.xml을 변경해도 상관없음
- 여러 개로 늘어날 경우 Context를 설정하기 위해 server.xml을 수정하는 건 지양해야 함
- server.xml을 수정하면 서버를 껐다 켜야 하는데 서비스 중에 서버를 껐다 켜는 건 치명적임
- 대신 사용할 수 있는 방법
- 1) 각각의 어플리케이션 META-INF(메타인포)의 context.xml 수정
- my-project\src\main\webapp\META-INF\context.xml 파일에서 아래처럼 수정
- <?xml version="1.0" encoding="UTF-8"?>
<Context path="/my-context-path"/>
- 2) $TOMCAT_HOME/conf/Catalina/localhost/ 디렉토리에 context 파일을 추가
-
- 톰캣 설치 루트 디렉토리/conf/Catalina/localhost에 xml 생성
- 예: TestWeb이라는 context를 추가하고 싶다면 $TOMCAT_HOME/conf/Catalina/localhost/TestWeb.xml 생성
- TestWeb.xml 파일 설정
- <Context docBase=”C:\webShop” reloadable=”true”/>
- 톰캣 설치 루트 디렉토리/conf/Catalina/localhost에 xml 생성
- 3) war 파일명으로 지정하기
- source를 build한 후 war를 Tomcat 디렉토리>webapps 디렉토리에 넣고 Tomcat을 실행하면 war 파일명으로 context path가 지정됨
- 단, my-project\src\main\webapp\META-INF\ 경로에 context.xml 파일이 없어야 함
- 1) 각각의 어플리케이션 META-INF(메타인포)의 context.xml 수정
-
'☕ Java 웹 프로그래밍 > Servlet & JSP' 카테고리의 다른 글
[Servlet&JSP] 서블릿 객체 생성과 실행 (0) | 2023.05.23 |
---|---|
[Servlet&JSP] 서블릿 프로그램 만들기 (0) | 2023.05.23 |
[Servlet&JSP] 웹 문서 추가하기 (0) | 2023.05.23 |
[Servlet&JSP] 실행환경 구축 - Tomcat 설치 (0) | 2023.05.23 |
[Servlet&JSP] Web Server와 WAS의 차이 (0) | 2023.05.23 |