DD(Deployment Descriptor) 파일로 쓰이는 web.xml에서 초기값을 정해 서블릿에 넘겨줄수있다.
ServletConfig와 ServletContext 를 사용할 수 있다.
ServletConfig는 컨테이너가 서블릿을 만들때 DD를 읽어 이름/값의 쌍으로 ServletConfig를 생성한다
서블릿이 다시 배포되지 않는 이상 DD를 수정한다고 바뀌지 않는다.
ServletContext는 서블릿만 사용하는 것이 아니라 모든 웹 어플리케이션에서 사용할 수 있다.
쉽게 말하면 ServletConfig는 서블릿 당 하나, ServletContext는 웹 어플리케이션 당 하나.
web.xml
더보기
....
<servlet>
<description></description>
<servlet-name>BeerParamTest</servlet-name>
<servlet-class>net.claztec.lab.TestInitParams</servlet-class>
<init-param>
<param-name>adminEmail</param-name>
<param-value>likewecare@wickedlysmart.com</param-value>
</init-param>
<init-param>
<param-name>mainEmail</param-name>
<param-value>blooper@wickedlysmart.com</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>BeerParamTest</servlet-name>
<url-pattern>/Tester.do</url-pattern>
</servlet-mapping>
<context-param>
<param-name>adminEmail2</param-name>
<param-value>clienttheaderror@wickedlysmart.com</param-value>
</context-param>
</web-app>
TestInitParams.java
더보기
package net.claztec.lab;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class TestInitParams
*/
public class TestInitParams extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public TestInitParams() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("test init parameters<br>");
Enumeration e = getServletConfig().getInitParameterNames();
while(e.hasMoreElements()) {
out.println("<br>param name = " + e.nextElement() + "<br>");
}
// ServletConfig 사용
out.println("main email is " + getServletConfig().getInitParameter("mainEmail"));
out.println("<br>");
out.println("admin email is " + getServletConfig().getInitParameter("adminEmail"));
out.println("<br>");
// ServletContext 사용
out.println("admin2 email is " + getServletContext().getInitParameter("adminEmail2"));
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
}
요즘에 보내기 페이스북에 보내기 미투데이에 보내기