ServletContext介绍,用法

web容器(tomcat)在启动时,它会为每个web项目承建一个对应的ServletContext对象。

--主要作用
  1. 获取全局的配置参数
  2. 获取资源在服务器的真实地址
  3. 域对象(共享数据)
  4. 获取文件MIME类型

1. 通过request对象获得
    ServletContext sc = request.getServletContext();
2. 继承HttpServlet后,可以直接调用
    ServletContext sc = getServletContext();
1. 存储数据
  void setAttribute(String name,Object value)
2. 获取数据
  Object getAttribute(String name)
3. 删除数据
  void removeAttribute(String name)
1. 何时创建?
  项目启动时,创建ServletContext对象
2. 何时销毁?
  项目关闭时,销毁ServletContext对象
3. 作用范围?
  与项目共存亡,(多个servlet都可以访问它)

--servletContext读取全局参数核心方法

getServletContext().getInitParameter(name);//根据指定的参数名获取参数值
getServletContext().getInitParameterNames();//获取所有参数名称列表
1.在web.xml中配置全局参数
  <!-- 全局配置参数,因为不属于任何一个servlet,但是所有的servlet都可以通过servletContext读取这个数据 -->
  <context-param>
         <param-name>param1</param-name>
         <param-value>value1</param-value>
  </context-param>
   <context-param>
         <param-name>param2</param-name>
         <param-value>value2</param-value>
  </context-param>2.在动态资源servlet里面使用servletcontext读取全局参数代码
public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
//使用servletContext读取全局配置参数数据
//核心方法/*getServletContext().getInitParameter(name);//根据指定的参数名获取参数值
getServletContext().getInitParameterNames();//获取所有参数名称列表*///打印所有参数
//1.先获取所有全局配置参数名称
Enumeration<String> enumeration =  getServletContext().getInitParameterNames();
//2.遍历迭代器
while(enumeration.hasMoreElements()){
//获取每个元素的参数名字
String parameName = enumeration.nextElement();
//根据参数名字获取参数值
String parameValue = getServletContext().getInitParameter(parameName);
//打印
System.out.println(parameName+"="+parameValue);
 }
}
原文地址:https://www.cnblogs.com/xiaozhang666/p/13365984.html