每个Web应用仅有一个ServletContext对象(webapps 下的每个目录都是一个 Web 应用)。
Web容器启动时创建,容器关闭或应用被卸载时结束。
该对象中保存了当前应用程序相关信息,
ServletContext 对象也被称为 Context 域对象。
ServletContext的存在,就是为了存放必须的、重要的、所有用户需要共享的、线程又是安全的一些资源信息,这样不仅节省了空间,还提高了效率。
获得 ServletContext 对象
四种方式:
GenericServlet 的 getServletContext()
1
ServletContext servletContext = this.getServletContext();
ServletConfig 的 getServletContext()
1
ServletContext servletContext = this.getServletConfig().getServletContext();
HttpSession 的 getServletContext()
1
ServletContext servletContext = req.getSession().getServletContext();
HttpServletRequest 提供的 getServletContext() 方法
1
ServletContext servletContext = req.getServletContext();
读取初始化参数
设置上下文初始化参数
web.xml
:
1 |
|
调用接口中方法获取初始化参数
String getInitParameter(String name)
根据初始化参数名 name,返回对应的初始化参数值。
Enumeration<String> getInitParameterNames()
返回 Web 应用所有上下文初始化参数名的枚举集合,如果该 Web 应用没有上下文初始化参数,则返回一个空的枚举集合。
数据通讯
void setAttribute(String name, Object object)
把一个 Java 对象与一个属性名绑定,并将它作为一个属性存放到 ServletContext 中。
参数 name 为属性名,参数 object 为属性值。
Object getAttribute(String name)
根据指定的属性名 name,返回 ServletContext 中对应的属性值。
void removeAttribute(String name)
从 ServletContext 中移除属性名为 name 的属性。
读取 Web 应用下的资源文件
Set getResourcePaths(String path)
返回一个 Set 集合,该集合中包含资源目录中的子目录和文件的名称。
String getRealPath(String path)
返回资源文件的真实路径(文件的绝对路径)。
URL getResource(String path)
返回映射到资源文件的 URL 对象。
InputStream getResourceAsStream(String path)
返回映射到资源文件的 InputStream 输入流对象。