티스토리 뷰

1. 서블릿 초기화 파라미터

 - 특정 Servelt이 생성될 때 초기에 필요한 데이터들이 있음. 

 ex) 특정 경로 및 아이디 정보

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

 - 초기화 파라미터를 web.xml이 아닌 Servlet파일에 직접 기술하는 방법도 있음.

 

1-1 web.xml 파일에 초기화 파라미터(Initialization Parameter) 기술 

 

1)Servlet 클래스 제작 및 web.xml파일에 초기화 파라미터 기술 

<servlet>
  	<servlet-name>iniParam</servlet-name>
  	<servlet-class>com.javalec.ex.iniParam</servlet-class>  
  	
  	<init-param>
  		<param-name>id</param-name>
  		<param-value>abcde</param-value>
  	</init-param>
  	<init-param>
  		<param-name>id</param-name>
  		<param-value>abcde</param-value>
  	</init-param>
  	<init-param>
  		<param-name>pw</param-name>
  		<param-value>12345</param-value>
  	</init-param>
  </servlet>
  <servlet-mapping>
  	<servlet-name>iniParam</servlet-name>
  	<url-pattern>/IP</url-pattern>
  </servlet-mapping>

 

2) ServletConfig 메소드 이용해서 데이터 불러오기

 

		String id = getInitParameter("id");
		String pw = getInitParameter("pw");
		
		System.out.println("id = " + id);
		System.out.println("pw = " + pw);

1-2 Servlet파일에 초기화 파라미터(Initialization Parameter) 기술

 

1) Servelt 클래스 제작

 

2) @WebInitParam에 초기화 파라미터 기술 

 

@WebServlet(urlPatterns= {"/Inip"}, initParams= {@WebInitParam(name="id", value="aaaaa"), @WebInitParam(name="pw", value="99999")})

 

3) ServletConfig 메소드 이용해서 데이터 불러오기 

 

		String id = getInitParameter("id");
		String pw = getInitParameter("pw");
		
		System.out.println("id = " + id);
		System.out.println("pw = " + pw);

 

 

2. 데이터 공유 : ServletContext

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

 - 데이터를 여러 서블릿 컨텐츠에서 다 같이 쓸 수 있는 방법 (초기화 파라미터는 '특정' 서블릿에서만 사용 가능)

 - 모든 어플리케이션이 실행된 후에, 모든 컴포넌트에서 사용가능 즉, 데이터를 공유

 

 

1) Servlet 클래스 제작

 

2) web.xml파일에 context parameter 기술

 - 모든 Servlet에서 사용하기 때문에 서블릿을 매핑하는 코드 안에 작성하지 않는다. 

 


<context-param>
	<param-name>id</param-name>
	<param-value>abc</param-value>
</context-param>
<context-param>
	<param-name>pw</param-name>
	<param-value>123</param-value>
</context-param>

</web-app>

 

3) ServletContext 메서드 이용해서 테이터 불러오기 

 - getServletContext()를 이용하여 getInitparameter로 값을 받는다.

String id = getServletContext().getInitParameter("id");
String pw = getServletContext().getInitParameter("pw");
		
System.out.println(" id " + id);
System.out.println(" pw " + pw);

 

3. 웹어플리케이션 감시 : ServletContextListener

 - 웹어플리케이션의 생명주기를 감시하는 리스너(Listener) = ServletContextListener

 - 리스너의 해당 메서드가 웹 어플리케이션의 시작과 종료 시 호출 됨 (contextInitialized(), contextDestroyed())

 

3-1 web.xml 파일에 리스너 클래스 기술 

 

1) 리스너 클래스 제작

 - ServletContextListener를 implements한 리스너 클래스 제작 

 - implements를 하면 자동으로 contextDestroyed 메서드와 contextInitialized 메서드가 오버라이드 됨 

package com.javalec.ex;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

public class ServeltL implements ServletContextListener {

	@Override
	public void contextDestroyed(ServletContextEvent arg0) {
		// TODO Auto-generated method stub
		System.out.println("ContextDestroyed");

	}

	@Override
	public void contextInitialized(ServletContextEvent arg0) {
		// TODO Auto-generated method stub
		System.out.println("ContextInitialize");

	}

}

 

2) web.xml 파일에 리스너 클래스 기술 

 

<listener>
	<listener-class>com.javalec.ex.ServeltL</listener-class>
</listener>

 

3-2 리스너 클래스에 기술(@WebListener)

 

1) 리스너 클래스 제작

 

2) @WebListener 추가 

@WebListener
public class ContextListenerEx implements ServletContextListener{
}

 

 

 

*궁금한점 

-doget() 메서드로 값을 받아오는 이유는?, doget()메서드로 실행하라고 지정하는 값이 없는데 왜 doget()메서드가 실행? 

-doget() 메서드의 정의

댓글