본문 바로가기
Web Programing/with JSP

[JSP] JSP의 동작구조

by Y06 2021. 1. 20.

JSP의 동작구조

[ KoreaFighting_jsp.java ]

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;

. . .
. . .

public void _jspinit(){

}

public void _jspDestory(){

}

public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.httpServletResponse response)
      throws java.io.IOException, javax.servlet.ServletException {

. . .
. . .

jspinit()

- 해당 페이지가 최초로 load 될 때 호출됨

- 페이지에 서비스를 수행하기 전에 초기화할 루틴을 삽입함

 

jspDestroy()

- 해당 페이지의 instance가 사라지는 시점에 호출됨

- 해당 페이지가 변경되어 새로이 load될 필요가 있을 떄 이미 load된 instance는 destroy가 호출되고 새로운 instance의 init이 호출됨

 

jspService()

- 서블릿의 service() 메소드에서 호출, 재정의 불가

- 웹 컨테이너가 .jsp 코드로 변환, 생성함


JSP의 동작구조를 보면

 

1. 웹 서버로부터 JSP에 대한 사용자 요청이 컨테이너로 전달됨

2. 요청 JSP에 대한 서블릿이 존재하면 다음 단계로 진행하고, 존재하지 않을 경우 JSP를 .java 파일로 변환한 다음 .class 파일로 컴파일함

3. 컴파일된 서블릿 클래스를 컨테이너 메모리에 적재하고 실행함

4~5. 데이터베이스 처리 혹은 별도의 기능을 위한 클래스 호출 등이 있다면 실행하고 결과를 취합해 HTML 형태로 구성함

6. HTML 형태의 결과를 웹 서버를 경유해 사용자 브라우저에 전달함

 

이러한 동작구조를 걸쳐 웹 페이지가 실행된다.


JSP의 Life Cycle(생명주기)

 

1. JSP 파일은 일반 텍스트를 비롯해 HTML 코드와 특수태그, 자바 코드가 섞여 있음

2. 서블릿으로 변환된 JSP는 컨테이너에 의해 생명주기가 관리됨

3. 서블릿으로 변환된 JSP는 _jspInit() 메서드에 의해 실행되며 이후 사용자 요청은 _jspService() 메서드가 쓰레드 형태로 호출되어 실행됨

4. 컨테이너에 의해 JSP 서블릿이 종료될 때에는 _jspDestroy() 메서드가 실행됨

 

'Web Programing > with JSP' 카테고리의 다른 글

[JSP] 폼 태그  (0) 2021.01.29
[JSP] 스크립트 요소  (0) 2021.01.21
[JSP] JSP 개발환경  (0) 2021.01.20
[JSP] CGI, JSP, Servlet이란?  (0) 2021.01.15
[JSP] 인터넷, 웹(Web)이란?  (0) 2021.01.15