본문 바로가기
  • 실행력이 모든걸 결정한다
Spring 사전 준비/JSP Servlet

[JSP Servlet] 초기화 파라미터 / 데이터 공유 / Listener

by 김코더 김주역 2020. 11. 26.
반응형

1. 초기화 파라미터 설정 방법

초기화 파라미터 : 특정 Servlet이 생성될 때 아이디, 비밀번호, 특정 경로처럼 초기에 필요한 데이터들

 

1) web.xml 에 작성

<web.xml>

<servlet>
    ... (servlet-name, servlet-class 지정 작업)
    <init-param>
    	<param-name>id</param-name>
        <param-value>kimcoder</param-value>
    </init-param>
    ...
</servlet>

Servlet 파일에서 사용

String id = getInitParameter("id");

 

 

2) Servlet 파일에 작성

WebServlet 어노테이션에 여러 속성을 추가해주기 위해 매핑 속성의 이름(urlPatterns)도 부여했다.

초기화 파라미터도 다음과 같이 initParams 속성에 WebInitParam 어노테이션을 붙여 부여해줄 수 있다.

WebInitParam 어노테이션을 사용하기 위한 import 작업도 필요하다. (line 8 참고)

웹서버 접속

 

2. 데이터 공유

여러 Servlet에서 특정 데이터를 공유해야 할 경우가 생기는데, 이때는 context 파라미터를 이용할 수 있다.

<web.xml>

<context-param>
    <param-name>id</param-name>
    <param-value>kimcoder</param-value>
</context-param>

Servlet 파일에서 사용

String id = getServletContext().getInitParameter("id");

 

 

3. 웹 어플리케이션 감시 (Listener)

contextInitialized(ServletContextEvent sce) : 웹 어플리케이션의 시작 시 호출, 리스너 start.

contextDestroyed(ServletContextEvent sce) : 웹 어플리케이션의 종료 시 호출, 리스터 end.

 

리스너 클래스는 추가로 만들어야 하는 클래스이다.

- 리스너 클래스 -

public class ContextListenerEx implements ServletContextListener{
    public ContextListenerEx(){
    
    }
    
    public void contextInitialized(ServletContextEvent sce){
        //...
    }   
    
    public void contextDestroyed(ServletContextEvent sce){
    	//...
    }
}


- web.xml - listener클래스를 패키지명과 함께 작성해준다.

<web-app>

  ...
  
  <listener>
      <listener-class>com.javalec.ex.ContextListenerEx</listener-class>
  <listener>
  
  ...
  
<web-app>

 

web.xml에 <listener-class>를 작성하지 않고 리스너 클래스 위에 @WebListener 를 작성해줘도 된다.

@WebListener
public class ContextListenerEx implements ServletContextListener{
    ...
}

 

 

반응형

댓글