JavaWeb_servlet(8)_ ServletContext

JavaWeb_servlet

ServletContext

● WEB 容器在启动时,它会为每个 WEB 应用程序都创建一个对应的 ServletContext 对象,它代表当前 web 应用。
JavaWeb_servlet(8)_ ServletContext
● 由于一个 WEB 应用中的所有 Servlet 共享同一个 ServletContext 对象,因此 Servlet 对象之间可以通过 ServletContext 对象来实现通讯。ServletContext 对象通常也被称之为 context 域对象。
● 查看 ServletContext API 文档,了解 ServletContext 对象的功能。
JavaWeb_servlet(8)_ ServletContext
● 应用:

  • 获取WEB应用的全局初始化参数(完整源码见文末)
    JavaWeb_servlet(8)_ ServletContext
    JavaWeb_servlet(8)_ ServletContext
  • 测试
    JavaWeb_servlet(8)_ ServletContext

以上操作完整源码:

package com.wyx.servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;

public class demo1 extends HttpServlet
{
	@Override
	public void init(ServletConfig config) throws ServletException
	{
		// 获得ServletContext对象
		ServletContext sc = config.getServletContext();
		// 获得ServletContext级别的全局的容器参数
		String contextValue = sc.getInitParameter("context_key");
		System.out.println(contextValue);
	}
}
<?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_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>servlet_demo</display-name>
  
  <!-- 
 	全局(ServletContext)的容器参数
  -->
  <context-param>
  	<param-name>context_key</param-name>
  	<param-value>context_value</param-value>
  </context-param>
  
   <servlet>
  	<!-- 设置servlet的名字 -->
  	<servlet-name>helloServlet</servlet-name>
  	<!-- 具体的servlet的类 -->
  	<servlet-class>com.wyx.servlet.demo1</servlet-class> 	
  	<load-on-startup>1</load-on-startup>
  </servlet>
  
  <servlet-mapping>
    <servlet-name>helloServlet</servlet-name>
    <url-pattern>/hello</url-pattern>
  </servlet-mapping> 
</web-app>

如有错误,欢迎指正!