Servlet 초기화
컨텍스트 패스(Context Path)
WAS(톰캣,Web Application Server)에서 웹어플리케이션을 구분하기 위한 path를 말한다.
프로젝트가 하나하나 웹어플리케이션이다.이것을 구분할 수 있게 하려고 context path를 지정한다.
이클립스에서 프로젝트를 생성할 때 마다 자동으로 server.xml에 입력을 한다.
서블릿 초기화 : ServletConfig 클래스
특정 Servlet이 생성될 때 초기에 필요한 데이터(아이디 정보, 특정경로)들을 초기화 하는 것을 서블릿 초기화라고 한다.
1. 초기화 파라미터(서블릿이 생성될 때 필요한 데이터)는 web.xml에 기술한다.
ServletConfig클래스를 이용해서 초기화 파라미터 사용이 가능하다.
2. 초기화 파라미터를 web.xml 대신 Servlet 파일에 직접 기술하는 방법도 있다.
web.xml 에 초기화 파라미터 기술하기
Servlet 클래스 작성
|
web.xml 에 초기화 파라미터를 입력
|
ServletConfig(인터페이스로 HttpServlet은 이놈에게서 상속받고 구현함)의 메소드를 이용해서 데이터를 사용(접근)한다.
ServletConfig의 getInitParameter() 메소드를 이용해서 접근할 수 있다. 이것은 HttpServlet이 구현을 해놓았다.
Servlet 파일에 초기화 파라미터를 직접 기술하는 방법
Servlet 클래스 작성
|
@WebInitParam 에 초기화 파라미터를 작성
|
ServletConfig 메소드를 이용한다.
servlet01 프로젝트 내 Java Resources 내 src 내 com.test.ex 패키지 내 InitServlet.java
package com.test.ex;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebInitParam;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
// 컨텍스트 패스(Context Path)
// WAS(톰캣,Web Application Server)에서 웹어플리케이션을 구분하기 위한 path를 말한다.
// 프로젝트가 하나하나 웹어플리케이션이다.이것을 구분할 수 있게 하려고 context path를 지정한다.
// 이클립스에서 프로젝트를 생성할때마다 자동으로 server.xml에 입력을 한다.
// 서블릿 초기화 : ServletConfig 클래스
// 특정 Servlet이 생성될때 초기에 필요한 데이터(아이디 정보, 특정경로)들을 초기화 하는 것을 서블릿 초기화라고 한다.
// 1. 초기화 파라미터(서블릿이 생성될때 필요한 데이터)는 web.xml에 기술한다.
// ServletConfig클래스를 이용해서 초기화 파라미터 사용이 가능하다.
// 2. 초기화파라미터를 web.xml대신 Servlet 파일에 직접 기술하는 방법도 있다.
// web.xml에 초기화 파라미터 기술하기
// Servlet 클래스 작성
// |
// web.xml에 초기화 파라미터를 입력
// |
// ServletConfig(인터페이스로 HttpServlet은 이놈에게서 상속받고 구현함)의 메소드를 이용해서 데이터를 사용(접근)한다.
// ServletConfig의 getInitParameter()메소드를 이용해서 접근할 수 있다. 이것은 HttpServlet이 구현을 해놓았다.
// Servlet 파일에 초기화 파라미터를 직접 기술하는 방법
// Servlet 클래스 작성
// |
// @WebInitParam 에 초기화 파라미터를 작성
// |
// ServletConfig 메소드를 이용한다.
/**
* Servlet implementation class InitServlet
*/
@WebServlet(urlPatterns = {"/InitS"}, initParams= {@WebInitParam(name="id", value="test11"), @WebInitParam(name="pw", value="1000"), @WebInitParam(name="local", value="pusan")})
public class InitServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public InitServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
//ServletConfig라는 인터페이슬르 구현한게 HttpServlet입니다. 굳이 ServletConfig라는객체를 생성할 필요는 없다.이 ServletConfig에 getInitParameter가 있다?
String id = getInitParameter("id");//web.xml의 해당 파라미터이름을 적을것
String pw = getInitParameter("pw");
String local = getInitParameter("local");
System.out.println("id : " + id);
System.out.println("비밀번호 : " + pw);
System.out.println("지역 : " + local);
//response.setContentType("text/html; charset=UTF-8");
//PrintWriter out = response.getWriter();
//html 형식으로 출력
// out.println("<html><head></head><body>");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
WEB-INF 내 web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>servlet01</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<context-param>
<param-name>id</param-name>
<param-value>test33</param-value>
</context-param>
<context-param>
<param-name>password</param-name>
<param-value>1234</param-value>
</context-param>
<context-param>
<param-name>local</param-name>
<param-value>kwangju</param-value>
</context-param>
<listener>
<listener-class>com.test.ex.ContextL</listener-class>
</listener>
</web-app>
web.xml 에 쓴거는 출력이 안되고 Servlet java파일에 쓴 초기화값들이 출력이 된다.