import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class ContextTest
*/
@WebServlet("/Context")
public class ContextTest extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public ContextTest() {
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;charset=utf-8");
PrintWriter out = response.getWriter();
ServletContext sc = getServletContext();
sc.setAttribute("address","한국대");
out.println("<html>");
out.println("<heaed><title>ServletContextTest</title></head>");
out.println("<body><h3>ServletContextTest</h3><hr>");
out.println("ContextPath : "+sc.getContextPath()+"<br>");
out.println("Servlet Modul Major Version : "+sc.getMajorVersion()+"<Br>");
out.println("Servlet Modul Minor Version : "+sc.getMinorVersion()+"<Br>");
out.println("web3 Context's Real path : "+sc.getRealPath("/jsp_web1"+"<br>"));
out.println("ServerInfo : "+sc.getServerInfo()+"<br>");
out.println("Servlet Context Name : "+sc.getServletContextName()+"<br>");
out.println("getAttribute('address') : "+sc.getAttribute("address")+"<br>");
sc.log("한국대");
out.println("</body></html>");
}
}
결과
log는 아래 콘솔창에 출력된다.
컨텍스트 초기화를 통해 할 수도 있다.
web.xml에서 파란색 부분을 추가한다.
* web.xml은 다이나믹 웹 프로젝트를 bbs 2.5ver으로 생성하면 확인할 수 있다.
<?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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>bbs</display-name>
<context-param>
<param-name>logEnabled</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>debugLevel</param-name>
<param-value>5</param-value>
</context-param>
<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>
<!-- 현재 웹 컨텍스트의 모든 Servlet,filter, Resource, 전역 errorpage 들을 등록하는 중요한 설정 파일이다.
웹 컨텍스트의 초기화 파라미터를 설정하면, 설정된 초기화 파라미터들은 웹 컨텍스트내으ㅔ 모든 Servlet과 jsp에서 공유할수 있는
전역 파라미터가 된다.-->
</web-app>
아래 내용을 테스트하던 페이지에 추가한다.
out.println("컨텍스트 초기화 파라미터(로깅여부) : "+sc.getInitParameter("logEnabled")+"<br>");
out.println("컨텍스트 초기화 파라미터(디버그레벨) : "+sc.getInitParameter("debugLevel")+"<br>");
결과는
JSP 상에서도 똑같은 결과가 나온다.
<body>
<h3>servlet Context Testg</h3>
<% application.setAttribute("address", "한국대");%>
ContextPath : <%= application.getContextPath() %><br>
Servlet Modul Major Version <%=application.getMajorVersion()%><Br>
Servlet Modul Minor Version : <%=application.getMinorVersion()%><Br>
web3 Contexts Real path : <%=application.getRealPath("/jsp_web1")%><br>
ServerInfo : <%=application.getServerInfo()%><br>
Servlet Context Name <%=application.getServletContextName()%><br>
getAttribute("address") : <%=application.getAttribute("address")%><br>
<% application.log("한국대"+request.getRemoteAddr());%>
컨텍스트 초기화 파라미터(로깅여부) : <%=application.getInitParameter("logEnabled")%><br>
컨텍스트 초기화 파라미터(디버그레벨) <%=application.getInitParameter("debugLevel")%><br>
</body>
</html>