개발/Web

[Java] Servlet - Web Server / WAS / Servlet / web.xml / welcome-file

하더 2022. 11. 3. 20:55

< 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에 작성한 값이 붙어지면서 요청