프로젝트의 이름은 'web03', 웹 애플리케이션을 실행할 서버(Target runtime)로 'Apache Tomcat v8.5', 서블릿 개발의 목표
버전을 '3.1'로 지정했다. 여기서 지정한 서블릿 개발 목표 버전을 기준으로 이클립스는 소스 코드의 문법을 검사한다. 지정된 버전에 없는 API를 사용하면 오류나 경고 메시지가 출력될 것이다.
1. 웹 애플리케이션 이름을 입력한다. 기본값은 프로젝트 이름이다. 나중에 서버에 자동 배치할 때 이 이름으로 폴더를 만들어 배치한다. 웹 브라우저에서 서블릿 실행을 요청할 때 여기에 지정한 웹 애플리케이션 이름을 URL에서 사용한다.
예시 : http://127.0.0.1(웹 서버 주소):9999(서비스 포트 번호)/web03(웹 애플리케이션 이름)/ServletName(서블릿 이름)
2. 웹 콘텐츠 파일을 저장할 작업 폴더의 이름을 지정한다. 서버에 자동 배치할 때 이 폴더의 내용물을 서버의 배치 폴더로 복사할 것이다. 폴더의 이름은 어떤것으로 하든 상관없지만 다른 개발자가 알아보도록 기본 이름 그대로 사용하는 것을 추천한다.
3. 웹 애플리케이션 배치 설명서 파일을 자동 생성하도록 하는 체크 상자다. 체크하면 프로젝트의 WEB-INF 폴더에 web.xml 파일이 자동 생성된다.
1. src
자바 소스 파일을 두는 폴더다. 서블릿 클래스나 필터, 리스너 등 필요한 모든 자바 클래스 파일을 두는 곳이다. 프로퍼티(.properties)도 이 폴더에 둔다.
2. build / classes
컴파일된 자바 클래스 파일(.class)을 두는 폴더다. 패키지에 소속된 클래스인 경우 이 폴더에 해당 패키지가 자동으로 만들어진다.
3. webapp
HTML(.html), CSS(.css), JavaScript(.js), JSP, 이미지 파일 등 웹 콘텐츠를 두는 폴더다. 웹 애플리케이션을 서버에 배치할 때 이 폴더의 내용물이 그대로 복사된다.
4. WEB-INF (webapp/WEB-INF)
웹 애플리케이션의 설정 관련 파일을 두는 폴더다. 이 폴더 안에 있는 파일은 클라이언트에서 요청할 수 없어서 HTML이나 CSS, JavaScript 등 클라이언트에서 요청할 수 있는 파일을 두면 안된다.
5. web.xml (webapp/WEB-INF/web.xml)
웹 애플리케이션 배치 설명서(Deployment Descriptor) 파일이다. 'DD파일'이라고도 불린다. 서블릿, 필터, 리스너, 매개변수, 기본 웹 페이지 등 웹 애플리케이션 컴포넌트들의 배치 정보를 이 파일에 작성한다. 서블릿 컨테이너는 클라이언트의 요청을 처리할 때 이 파일의 정보를 참고하여 서블릿 클래스를 찾거나 필터를 실행하는 등의 작업을 수행한다.
6. lib (webapp/WEB-INF/lib)
자바 아카이브(Archive) 파일(.jar)을 두는 폴더다. 아카이브란? '기록 보관소'라는 뜻이다. 아카이브 파일은 클래스 파일(.class)과 프로퍼티 파일(.properties)들을 모아 놓은 보관소 파일이다. 이런 이유로 Java ARchive의 합성어를 확장자 명(.jar)로 사용하고 있다. 'jar'단어 자체로 '단지'라는 뜻이 있다.
참고로 유닉스(또는 리눅스) 계열 운영체제에서 많이 사용하는 .tar는 Tape ARchive의 합성어다. 유닉스 초창기에 파일을 백업할 때 자기 테이프 드라이브를 주로 사용했는데 백업하기 전 백업 대상 파일들을 하나의 파일로 담았다. 이 파일의 확장자가 .tar이다. 여러 파일을 주고받을 때 매우 편리하여 지금도 많이 사용되고 있다.
참고도서 : https://freelec.co.kr/book/1674/
[열혈강의] 자바 웹 개발 워크북
[열혈강의] 자바 웹 개발 워크북
freelec.co.kr
'교재 실습 > 자바 웹 개발 워크북' 카테고리의 다른 글
16. 서블릿 만들기 (2) (0) | 2022.01.10 |
---|---|
15. 서블릿 만들기 (1) (0) | 2022.01.09 |
13. 서블릿, JSP vs. Java EE vs. WAS (0) | 2022.01.08 |
12. CGI프로그램과 서블릿 (0) | 2022.01.07 |
11. 파일 업로드 (0) | 2022.01.06 |
댓글