[Java] Servlet - Web Server / WAS / Servlet / web.xml / welcome-file
< Web 통신 구조 >
< Web Server >
- 사용자에게 HTML페이지나 jpg, png같은 이미지를 HTTP프로토콜을 통해 웹 브라우저에 제공하는 서버
- 내부의 내용이 이미 만들어져 있는 정적인 요소들을 화면에 보여주는 역할을 함
< WAS >
- Web Application Server의 약자로 사용자가 요청한 서비스의 결과를 스크립트 언어 등으로 가공하여
생성한 동적인 페이지를 사용자에게 보여주는 역할
장점 | 단점 | |
Web Server | - 빠른 처리 속도 (요청에 대한 결과 페이지만 전송) - 구현이 쉬움 (HTML같은 단순한 문서만으로 구성) |
- 한정적 서비스 (만들어진 정보만 보여주기 때문에 서비스가 한정적) - 글의 추가, 수정, 삭제가 어려움 (문서의 내용이 변경될 경우 직접 수정) |
WAS | - 서비스의 다양성 (여러 데이터를 활용할 수 있음) - 글의 추가, 수정, 삭제가 쉬움 (문서의 내용이 변경될 경우 직접 수정하지 않음) |
- 느린 처리 속도 (데이터를 처리하여 결과를 전송함) - 구현이 어려움 (서비스에 해당하는 소스를 직접 작성) |
< Servlet >
- 웹 서비스를 위한 '자바 클래스'를 말하며 자바를 이용해 웹을 만들기 위해 필요한 기술
- 사용자의 요청을 받아서 처리하고 그에 해당하는 응답페이지를 만들어
다시 사용자에게 전송해주는 역할을 하는 자바클래스 (Controller의 역할)
- 웹에서 동적인 페이지를 Java로 구현할 수 있게 해주는 서버측 프로그램(WAS에서 구동됨)
- Servlet 요청 같은 경우, 반드시 그 요청값이 현재 웹 어플리케이션의 context Path == /context Root/뒤에 붙는 경로
형식으로 작성해야 함 (같은 매핑값을 가지는 서블릿이 있을 수 있기 때문에!!)
< web.xml 파일 >
- 배포 서술자(DD, Deployment Descriptor)라고 해서 해당 웹 어플리케이션의 기본적인 설정을 위해 작성하는 파일
- 해당 웹 어플리케이션을 구동시키는 서버가 Start시 제일 먼저 읽히는 파일
- 개발자가 web.xml 파일을 수정하지 않고도 개발 및 운영이 가능하지만,
규모가 커지고 다양한 API들을 사용하게 되면 직접 수정을 해야하는 경우가 생김
< welcome-file >
- 처음에 url로 해당 어플리케이션 루트 요청 시 제일 처음 보여지게되는 메인 페이지를 지정해놓은 것
- http://구동중인서버의ip주소:포트번호/
=> 각자 본인 컴퓨터에 구축해놓은 서버의 IP주소를 요청
- 단, welcome-file-list에 존재하는 파일명이 WebContent 폴더* 안에 위치해야 한다.
* WebContent 폴더 : 최종 배포되는 폴더 / 최상위폴더
< 경로 지정 방식 >
- 절대경로방식(/) - 앞에 슬래시가 붙으면 절대경로방식
: /Context Root/요청할 url
: / 로 시작하는 경우, 포트번호 뒤에 붙어서 감
: localhost:8001 뒤에 action에 작성한 값이 붙어지면서 요청
- 상대경로방식(test1.do) - 슬래시로 시작하지 않으면 무조건 상대경로방식
: 요청할 url문구로 시작하는 경우 (현재 보고있는 페이지의 제일 뒤 슬래시 이후로 경로가 붙음)
: 지금 내가 있는 페이지에서 요청을 보낼때 어떻게 주소가 붙을지 생각해야함
: 현재 이 페이지가 보여질 때의 url 경로 중에서
: 마지막 /로부터 뒤에 action에 작성한 값이 붙어지면서 요청