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); } }