교육과정 기록/💻back-end

[7.14] 서블릿 핵심 클래스

춘식이왔엉 2022. 7. 14. 21:46

* Servlet Lifecycle States *
(1) NEW        ==> init callback
(2) READY      ==> service callback
(3) DESTROY   ==> destroy callback

 

* ServletConfig API를 활용한 초기화 파라미터 사용

서블릿이 초기화될 때, 공통적으로 적용해야 되는 작업들이 필요한 경우가 있다.

예) 외부 파일 및 디렉터리 경로, JDBC에서 사용하기 위한 데이터베이스 경로, 계정 및 비밀번호 등

이런 정보들을 서블릿에서 설정하지 않고 web.xml에서 설정한 후 서블릿에서 접근해서 사용한다.

서블릿에서 설정하는 경우에는 정보가 변경되면 반드시 서블릿을 재컴파일 시켜야 된다. 하지만 web.xml에서 설정하면 재컴파일 없이 변경된 정보를 참조할 수 있기 때문에 유지보수가 쉬워진다.

이렇게 web.xml에 설정된 설정 값을 초기화 파라미터(Initialization Parameter)라고 하며 ServletConfig API를 이용해서 접근할 수 있다.

특징은 여러 서블릿에서 공유해서 사용하지 못하고 으로 등록된 서블릿에서만 사용 가능하다는 점이다.

또한 서블릿 코드 내에서 @WebInitParam 어노테이션을 이용하여 초기화 파라미터를 등록 할 수도 있다.

 

* web.xml에 초기화 파라미터를 설정하는 방법

<servlet> 태그 안에서 <init-param> 태그를 사용하여 지정한다.

다수의 태그 등록이 가능 하고, name/value 쌍으로 설정된다.

<init-param>
  <param-name>초기화파라미터 이름</param-name>
  <param-value>초기화파라미터 값</param-value>
</init-param>

 

 

* ServletContext API

웹 어플리케이션에는 여러 가지 자원을 포함할 수 있다.

html 파일, 미디어 파일, 이미지 파일, 다수의 JSP 파일과 서블릿 등이 유기적으로 동작한다.

ServletContext는 웹 어플리케이션(Context)마다 하나씩 생성되는 객체로서, 다수의 JSP 파일과 서블릿에서 공유해서 사용할 수 있다.

또한 ServletContext 객체는 웹 어플리케이션의 LifeCycle과 일치하기 때문에, 웹 어플리케이션이 Tomcat 컨테이너에 존재한다면 계속 사용 가능하다. 이것을 ‘application scope’라고 한다.