Servlet 동작 과정
- 클라이언트가 URL을 입력
- HTTP request가 요청 전송
- Servlet Container(대표적으로 톰캣)*가 요청 받아서
- HttpServletRequest, HttpServletResponse 객체 생성
5. web.xml 기반으로 사용자가 요청한 URL이 어느 서블릿 요청인지 탐색(mapping 필요)
- web.xml은 서버가 시작되면 제일 먼저 읽는 파일
- 웹 어플리케이션의 배포서술자(Deployment Descriptor)* 역할
- 1번 클라이언트가 입력한 URL과 web.xml에 등록된 URL이 일치 하는 경우 해당 파일 실행
→ URL 예시 : http://localhost:8001/servlet
→ 즉, http://구동종인서버의ip:포트번호/애플리케이션ConstextPath**
- 해당 파일은 webapp/에 위치해 있어야 찾을 수 있음
* 배포서술자란?
- 해당 웹 애플리케이션의 기본적인 설정들을 작성
- Java EE(Java Enterprise Edition) 기반의 웹 애플리케이션에서 사용되는 XML 파일
- Tomcat과 같은 서블릿 컨테이너에 웹 애플리케이션을 배포하는 방법 설명하는 파일
- 파일의 위치는 항상 동일: src/main/webapp/ WEB-INF/web.xml에 위치
** Context Path란?
- URL의 일부.
- 웹에서 상대적인 경로, 웹 컨테이너가 JSP 실행 시 자동으로 생성해 제공하는 내장 객체
- 웹 어플리케이션 서버(Web Application Server) = 톰캣에서 웹 상의 어플리케이션을 식별하기 위한 경로
- http://구동종인서버의ip:포트번호/애플리케이션ContextPath → 밑줄 그은 부분
= [프로토콜]://[도메인]:[포트]/ 형태에서 [도메인]:[포트] 뒤에 나오는 식별자
- 클라이언트가 특정 URL을 요청하면 Context Path를 기준으로 라우팅
5~6번 사이: init()
- 클라이트의 요청이 들어오면 서블릿 컨테이너에서 해당 서블릿이 메모리에 있는지 확인
- 있을 경우: 해당 서블릿 요청
- 없을 경우: 서블릿 클래스의 인스턴스를 메모리에 적재 필요
→ 서블릿 클래스 로드하고 인스턴스를 생성한 후 메모리에 적재
→ 이 과정에서 init() 메서드 호출되며 초기화 작업 수행
→ init() 메서드는 HttpServlet 클래스를 상속받은 서블릿 클래스에 위치
→ 즉, 해당 서블릿에 각각 스레드에서 공통적으로 사용하기 위해 필요한 작업이 있으면 init() 메서드 오버라이딩해 구현 가능
- init() 메서드 최초 한번 수행 이후 요청은 스레드로 실행
6. 해당 서블릿에서 service() 메소드 호출
- service() 메서드를 통해 doGet()과 doPost()로 분기
- 이 때 파라미터로 HttpSevletRequest와 HttpServletResponse 클래스 타입인 request, response 객체 제공
- 사용자 요청 처리는 request로 응답 처리는 response로
7. GET, POST 요청 중 어느 것인지에 따라 doGet(), doPost() 메소드 호출
8. doGet(), doPost() 메소드에서 요청 시 들어오는 값을 추출
9. 추출한 값을 가공 처리(servlet(controller) ↔ service() ↔ dao() ↔ DB)
10. 가공 후 사용자가 보게될 동적 응답페이지(jsp) 선택해 포워딩
11. 응답이 끝나면 HttpServletRequest, HttpServletResponse 객체 소멸
'JAVA' 카테고리의 다른 글
JAVA - Web : Servlet(JSP)이란? (0) | 2024.03.31 |
---|---|
JAVA 자꾸 혼자 헷갈리는 내용 정리 1 (+ 계속 추가중) (0) | 2024.03.05 |
MVC(model-view-controller) : 과제를 위한 정리 (0) | 2024.03.04 |
JDBC, JAVA-SQL 연동 : 자바 - 데이터베이스(DB) 연결 (0) | 2024.03.04 |
JAVA Collection Framework 4: Iterator(반복자)을 이용한 데이터 출력 (1) | 2024.02.26 |