본문으로 바로가기




서블릿 초기화 파라미터: ServletConfig


특정 Servlet이 생성될 때 초기에 필요한 데이터들이 있습니다. 예를 들 특정 경로 및 아이디 정보 등 입니다.

이러한 데이터들을 초기화 파라미터라고 하며, web.xml에 기술하고 Servlet파일에서는 ServletConfig 클래스를 이용해서 접근(사용)합니다


2가지 방법이 있다.


servlet 클래스 제작 ----- web.xml파일에 초기화 파라미터 기술-----> ServletConfig 메소드 이용해서 데이터 불러오기

1.Web.xml방식

                                             서브릿 파라미터를 3개 지정(id, pw, path)

반환값은 스트링이다.

ServeltConfig는 상속받는다. ctrl + T를 누르면 부모클래스가 누구인지 알수있다.(HTTPservlet--GenenicServlet--ServletConfig)


protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODO Auto-generated method stub

response.getWriter().append("Served at: ").append(request.getContextPath());

String id = getInitParameter("id");

String pw = getInitParameter("pw");

System.out.println("id =" + id);

System.out.println("pw =" + pw);

}


id abcdef 

pw 12345가 출력됨을 알수있다.


2. Servlet 파일을 이용하는방식




Servlet클래스 제작  ------------- @WebInitParam에 초기화 파라미터 기술  ----- ServletConfig 메소드 이용해서 데이터 불러오기

                                 

@WebServlet(urlPatterns= {"/InitP"},

initParams= {@WebInitParam(name ="id", value = "aaaaa"),

                    @WebInitParam(name ="pw", value = "99999")})




데이터 공유



여러 Servlet에서 특정 데이터를 공유해야 할 경우 context parameter를 이용해서 web.xml에 데이터를 기술하고, Servlet에서 공유하면서 사용 할 수 있습니다.

-하나의 web application마다 하나의 servletContext객체가 존재

- 서버와 container에 관련된 정보를 servlet에게 제공

- 포함된 모든 servlet에게 초기 파라미터를 제공할때 유용



구조servletContext------ ServletConfig-----servlet

servlet 클래스 제작 ------> web.xml파일에 context parameter기술----------> ServletContext 메소드 이용해서 데이터 불러오기



web.xml


initParam.java

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODO Auto-generated method stub

response.getWriter().append("Served at: ").append(request.getContextPath());

 

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

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

      

System.out.println("id = " + id);

System.out.println("pw = " + pw);




웹어플리케이션 감시 : ServletContextListener


서블릿 컨테이너----웹 어플리케이션 ---- 이벤트 리스너

(Tomcat)


웹어플리케이션의 생명주기(LifeCycle)를 감시하는 리스너(Listener)가 있습니다. 바로 ServletContextListener 입니다.

리스너의 해당 메소드가 웹 어플리케이션의 시작과 종료 시 호출 됩니다.(contextInitialized(), contextDestroyed())




리스너 클래스 제작 (implement 해야함)--------------> web.xml파일에 리스너 클래스 기술


서블릿 만들때  ADD해서 servletContextListner를 지정해주어야 contextDestroved메소드와 contextInitialized메소드가 만들어진다. 




xml파일에 실제주소 명시