JSP 구동 원리
- JSP 를 요청하면 Servlet 으로 변환되어 메모리에 로드된 후 처리된다.
JSP Life Cycle
- Servlet 을 기반으로 하는 JSP 는 Servlet 과 동일한 흐름을 가진다.
init event 발생할 시에 jspInit() ->
request 및 response 발생할 시에 jspService() ->
destroy event 발생할 시에 jspDestroy()
주요 메소드
메소드 |
설명 |
jspInit() |
- 해당 페이지가 최초 요청 시 1회 호출된다. - 해당 페이지가 응답하기 위해 필요한 초기화 처리를 수행한다. |
jspDestroy() |
- 해당 페이지의 객체가 메모리에서 사라지면 호출된다. - 해당 페이지가 변경되어 reload 될 때 호출된다. |
jspService() |
- 해당 페이지의 요청이 들어오면 호출된다. - 보통 구현하지 않고 생략한다. |
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %>
<%-- JSP 라이프 사이클 예제 --%> <%! public void jspInit(){ System.out.println("jspInit() 호출"); } public void jspDestroy(){ System.out.println("jspDestroy() 호출"); } % >
<% out.println("helloWorld_1"); out.println("helloWorld_2"); %> |
컴파일 할 시에 "jspInit() 호출" 이 콘솔 창에 출력되고 새로 고침을 해도 또 다시 출력되지 않으나 jsp 파일에서 내용 변경하고 새로고침 할 시에는 "jspDestroy() 호출" 이 콘솔 창에 출력되고 다시 "jspInit() 호출" 이 출력된다. |
전역 변수 표현
- JSP 내 스크립틀릿 코드는 모두 doGet() / doPost() 내의 지역변수 이다.
- 전역 변수는 JSP 의 선언부 (Declearation) 에서 기술해야 한다. <%! .. %>
- <% .. %> 는 지역변수