ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 作用 获取全局初始化参数,共享资源,获取资源文件. ## 生命周期 * 创建:服务器启动的时候会为每个项目创建一个servletContext上下文对象,servletContext是项目的一个引用. * 销毁:在服务器关闭或者移除项目的时候servletConext销毁. ## 获取 1. getservletConfig().getServletConext(). 2. getServletConext(). ## 常用方法 1. String getInitParameter(String name) 获取指定的项目初始化参数 . 2. Enumeration getInitParameterNames() 获取项目所有初始化参数名称. 3. String getRealPath(string filepath) 获取一个资源在服务器上的绝对路径,从根目录下读取,以"/开始". 4. InputStream getResourceAsStream(String filepath) 以流的方式返回一个文件. 5. String getMimeType(String 文件名) 获取一个文件的mime类型(text/html,image/gif) ## web.xml配置 ~~~ <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <context-param> <param-name>name</param-name> <param-value>jack</param-value> </context-param> <context-param> <param-name>age</param-name> <param-value>20</param-value> </context-param> </web-app> ~~~ ## 实例 ~~~ //获取servletContext对象 ServletContext servletContext = getServletContext(); //获取全局初始化参数 String name = servletContext.getInitParameter("name"); String age = servletContext.getInitParameter("age"); System.out.println(name); System.out.println(age); //获取所有全局初始化参数名称 Enumeration<String> initParameterNames = servletContext.getInitParameterNames(); while (initParameterNames.hasMoreElements()) { String n = (String) initParameterNames.nextElement(); System.out.println(n); System.out.println(servletContext.getInitParameter(n)); } //获取一个资源在服务器上的真实路径 String realPath = servletContext.getRealPath("/1.html"); System.out.println(realPath); //以流的形式返回一个文件 InputStream resourceAsStream = servletContext.getResourceAsStream("/1.html"); System.out.println(resourceAsStream); //获取一个文件的mime类型(大类型/小类型) String mimeType = servletContext.getMimeType("/1.html"); System.out.println(mimeType); ~~~ ## 资源共享 设置 ~~~ ServletContext servletContext = getServletContext(); Integer count = (Integer) servletContext.getAttribute("count"); if (count == null) { servletContext.setAttribute("count", 1); } servletContext.setAttribute("count", count + 1); ~~~ 获取 ~~~ ServletContext servletContext = getServletContext(); Object count = servletContext.getAttribute("count"); System.out.println(count); ~~~ 删除 ~~~ ServletContext servletContext = getServletContext(); servletContext.removeAttribute("count"); ~~~