서블릿 초기화 파라미터: 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파일에 실제주소 명시
'프로그래밍 > jsp' 카테고리의 다른 글
10.JSP 본격적으로 살펴보기-II(스크립트릿, 선언, 표현식, 지시자, 주석) (1172) | 2017.10.01 |
---|---|
9.JSP 본격적으로 살펴보기-I(jsp태그, JSP내부객체) (1209) | 2017.10.01 |
7장 Servlet 본격적으로 살펴보기-III(html form 태그) (1192) | 2017.09.27 |
6.servlet 본격적으로 살펴보기-II(servlet 라이프 사이클 (생명주기)) (1189) | 2017.09.26 |
5.Servlet 본격적으로 살펴보기-I(doGet, doPost, 컨택스트패스) (1204) | 2017.09.25 |