- [JSP] 22. JSP 라이프 사이클2024년 07월 03일
- Song hyun
- 작성자
- 2024.07.03.:52
728x90반응형[JSP] 22. JSP 라이프 사이클
1. JSP 라이프 사이클이란?
=> JSP 페이지가 요청을 처리하는 일련의 과정을 의미한다.
(1) JSP 페이지 번역
-.jsp 파일 -> _jsp.java
(2) JSP 페이지 컴파일
-_jsp.java -> _jsp.class
(3) 클래스 로딩
-컴파일된 클래스 파일을 JVM으로 로드한다.
(4) 인스턴스화
-서블릿 클래스의 객체를 생성한다.
(5) 초기화
-서블릿 객체를 초기화한다. (init() 메서드 작동)
(6) 요청 처리
-클라이언트의 요청을 처리하고, 응답을 생성한다.
(7) 소멸
-서블릿 객체가 소멸될 때 자원을 해제한다. (destroy() 메서드 작동)WAS (웹 애플리케이션 서버)
│├── 웹 컨테이너 (Web Container)
│ │ │ ├── 서블릿 컨테이너 (Servlet Container)
│ │ ├── 서블릿 클래스 로딩
│ │ ├── 서블릿 인스턴스 생성
│ │ ├── 서블릿 초기화 (init)
│ │ ├── 요청 처리 (service, doGet, doPost)
│ │ └── 서블릿 소멸 (destroy)
│ │ │ └── JSP 컨테이너 (JSP Container)
| |
│ ├── JSP 페이지 번역 (Translation)
│ ├── JSP 페이지 컴파일 (Compilation)
│ ├── 클래스 로딩 (Class Loading)
│ ├── 인스턴스화 (Instantiation)
│ ├── 초기화 (jspInit)
│ ├── 요청 처리 (jspService)
│ └── 소멸 (jspDestroy)
│ │ └── ...2. 시나리오 코드
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.util.*" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <% // http://localhost:8080/jsp/example.jsp // 초기화 단계(jspInit 역할) if(application.getAttribute("initialized")==null){ application.setAttribute("initialized", true); application.setAttribute("initializedTime", new Date()); out.println("JSP가 초기화 되었습니다. <br>"); } out.println("요청이 완료 되었습니다. <br>"); out.println("현재 시간 : "+new Date()+" <br>"); %>> </body> </html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.util.*" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <% // http://localhost:8080/jsp/example.jsp // 초기화 단계(jspInit 역할) if(application.getAttribute("initialized")==null){ application.setAttribute("initialized", true); application.setAttribute("initializedTime", new Date()); out.println("JSP가 초기화 되었습니다. <br>"); } out.println("요청이 완료 되었습니다. <br>"); out.println("현재 시간 : "+new Date()+" <br>"); // 세션이라는 전역 메모리지에 데이터를 저장하고 확인해 보자. String message=(String)session.getAttribute("message"); if(message != null){ out.println("세션 메세지 : "+message); } else { out.println("저장된 세션 메세지가 없습니다."); } // 세션이라는 메모리에 key,value를 할당하자. session.setAttribute("message","안녕! 세션에 저장한 메세지야"); %>> </body> </html>
initialized가 not null이기 때문에 삭제 문구가 출력된다. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.util.*" %> <% // http://localhost:8080/jsp/example.jsp // 초기화 단계(jspInit 역할) if(application.getAttribute("initialized")==null){ application.setAttribute("initialized", true); application.setAttribute("initializedTime", new Date()); out.println("JSP가 초기화 되었습니다. <br>"); } out.println("요청이 완료 되었습니다. <br>"); out.println("현재 시간 : "+new Date()+" <br>"); // 세션이라는 전역 메모리지에 데이터를 저장하고 확인해 보자. String message=(String)session.getAttribute("message"); if(message != null){ out.println("세션 메세지 : "+message); } else { out.println("저장된 세션 메세지가 없습니다."); } // 세션이라는 메모리에 key,value를 할당하자. session.setAttribute("message","안녕! 세션에 저장한 메세지야"); %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <h1>JSP 라이프 사이클 확인</h1> <p>이 페이지의 학습 목적은 JSP 동작 방식에 대한 이해와 라이프 사이클입니다.</p> </body> </html> <% // 소멸 단계 확인 (jspDestroy) if(application.getAttribute("initialized")!=null){ application.removeAttribute("initialized"); application.removeAttribute("initializedTime"); out.println("jsp 객체(서블릿)가 소멸되었습니다 ㅠㅠ <br>"); } %>
728x90반응형'JSP > 기본 이론' 카테고리의 다른 글
[JSP] 24. JSP와 HTML을 사용해 인사말 생성기 만들기 (0) 2024.07.04 [JSP] 23. JSP 기초 문법 (0) 2024.07.03 [JSP] 21. JSP의 개념과 역할 (0) 2024.07.03 [JSP] 19. 리스너 (0) 2024.07.03 [JSP] 20. 세션과 리스너를 함께 사용하기 (0) 2024.07.03 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)