본문 바로가기
Spec UP - Backend/Java, JDK, Servlet

JSP / JSP 컨테이너

by TIS_Ha 2021. 10. 27.
반응형

JSP

자바프로그램을 컴파일 하고 실행할 수 있는 환경을 포함하고 있는 프로그램입니다.
JDK는 자바컴파일 환경과 자바 런타임 환경으로 구성되어있는데 컴파일 환경은 자바 파일을 컴파일 할 수 있는 컴파일러를 포함한 일부분이고 런타임 환경은 컴파일된 자바 프로그램을 실행할 수 있도록 해주는 환경입니다.
JDK 설치 후 시스템 내의 어느 위치에서도 자바명령을 사용할 수 있게 패스(Path)를 설정해주어야합니다.
자바 컴파일 명령과 실행명령 등이 있는 폴더의 위치는 JAVA_HOME\bin 입니다.
그래서 이 폴더까지의 경로를 패스(Path)에 등록해줌으로써 시스템 내의 어느 위치에서도 자바 명령을 사용할 수 있게 합니다.


JSP 컨테이너


동적인 페이지 생성을 맡아서 처리할 프로그램으로 jsp 페이지에 대한 요청을 처리합니다.
JSP 컨테이너(톰캣)가 설치되면 서블릿 관련 클래스의 묶음인 servlet-api.jar 파일이 TOMCAT_HOME\lib에 생성됩니다.

servlet-api.jar는 서블릿 관련 클래스를 패키지로 묶은 것인데 이클립스를 통하지 않고 이 패키지를 사용하는 자바 파일을 컴파일 하려면 클래스 패스에 servlet-api.jar 파일의 전체 경로를 등록하든지 아니면 JAVA_HOME\jre\lib\ext 폴더에 servlet-api.jar 파일을 복사해야합니다.

 


JSP의 동작구조

정적인 페이지에 대한 요청, 즉 HTML, 여러 이미지, 텍스트 파일들에 대한 요청은 웹 서버에서 해결합니다.

그리고 동적인 페이지에 대한 요청, 즉 jsp 페이지에 대한 요청은 웹서버에서 JSP 컨테이너로 다시 전달됩니다.

요청을 받은 jsp컨테이너는 해당 jsp페이지를 찾아서 '서블릿' 이라고 부르는 자바파일로 변환 시킨 다음 자바파일을 컴파일합니다. 그런 다음 컴파일 된 자바 파일의 실행 결과가 사용자의 브라우저로 전송이 됩니다.

 

JSP의 Life Cycle : init() -> service() -> destory()

1. init() : 메모리에 로드된 서블릿은 init() 메소드의 수행을 통해 service() 함수가 수행될 때 요구되는 자원에대한 연결이나 초기화 작업을 하게 됩니다. 즉 서블릿이 실행되기 위해서 반드시 수행되어야하는 메소드입니다.

2. service() : 사용자로부터 들어온 요청에 대한 처리 수행. 즉 동적인 콘텐츠에 대한 처리를 맡아서 처리함.

3. destory() : 요청된 처리를 마친 서빌릇은 더 이상 서비스할 필요가 없는경우에 메모리를 해제함.(Ex. 갑자기 서버가 다운되어 종료하게되는경우)

 

 

반응형

댓글