개발을 하였으면, 사용자가 접속할 수 있도록 배포를 해주어야 한다.
배포라는 말은 개발을 마쳤을 때 어떻게 하는 가를 의미한다.
✔️ Java EE: WAR(Dynamic Web Project)
❗️ WAR: web application archive
(참고로 Java SE는 JAR(일반 JAVA파일) 파일)
Servelt/JSP 규약은 웹 어플리케이션이 특정 폴더 구조를 따르도록 제한하고 있다. 따라서 이러한 폴더 구조를 모르면 제대로 동작하는 코드를 작성할 수 없다.
✔️ 웹 어플리케이션 폴더
: webapps 디렉토리에 위치한04_19
,ROOT
,study
등의 폴더
: 웹 어플리케이션 폴더는WEB-INF
폴더와 그 하위 폴더(classes
,lib
)를 포함한다.
WEB-INF 폴더와 그 하위 폴더를 제외한 나머지 폴더에는 웹 어플리케이션에서 사용할 JSP, HTML, 이미지 등의 파일이 위치한다.
Servelt 2.5/JSP 2.1 규약부터는 xml 파일을 포함하지 않아도 되도록 바꼈다.
그러나 다음 경우에는 web.xml 파일을 작성해야 한다.
- 서블릿을 직접 설정하는 경우
- 리스너(Litener)를 직접 설정하는 경우
- 특정 URL에 속하는 JSP들에 대해 공통 속성값을 설정하는 경우
classes는 자바파일과 클래스파일이 들어가 있다.
lib는 외부라이브러리를 의미.
톰켓에서 웹 어플리케이션은 [톰캣]\webapps
폴더에 위치한다.
이 폴더에 있는 하위 폴더는 자동으로 웹 어플리케이션에 포함된다. 각 폴더의 이름은 웹 어플리케이션을 실행할 때 사용되는 URL과 관련이 있다.
이클립스에서 만들면 톰켓 폴더안에 생성되지 않는다.
이클립스에서 서버를 등록해서 쓰고 있기 때문이다.
배포(export)를 해서 war파일로 만들어야지 생긴다.
- [톰켓]\webapps[웹경로] ➡️
http://host:port[/웹 경로]
✔️context path
=http://localhost:8080/[/웹 경로]
에서 웹 어플리케이션 경로 인[/웹 경로]
를 가르킴
request 기본 객체는 컨텍스트 경로를 제공라는 메서드를 정의하고 있다.
✔️ request.getContextPath()
배포할 폴더를 우클릭한다 ➡️ Export ➡️ WAR file 클릭
Export souce files는 자바파일도 같이 줄까? 라는 의미.
appache-tomcat 폴더 내에 webapps폴더 안에다가 war파일을 넣는다.
그리고 bin 폴더안에 startup을 누른다. 그러면 저절로 실행이 된다.