Servlet-ServletContext
ServletContext
ServletContext是web应用中的上下文对象,它随着web应用的加载而加载,随之销毁而销毁,与web应用共存,它可以用于Servlet之间的“通信”,该web应用中的每个Servlet都可以访问到这个共同的ServletContext对象,而且它在一个web应用中仅存在一个(单例)。
我们可以将它理解为web应用中公开的仓库,该web应用下的任何Servlet都能访问到它,都能使用它,我们使用它,大部分也都是使用它存储一些公开属性。
在Servlet中获得该对象的方法:ServletContext servletContext = this.getServletContext();
;
ServletContext的常见方法
方法 | 作用 |
---|---|
public String getContextPath(); | 获取该项目的URI路径(/web应用名) |
public ServletContext getContext(String uripath); | 获取指定的uripath的ServletContext对象 |
public String getMimeType(String file); | 返回指定文件名的MIME类型 |
public Set getResourcePaths(String path); | 返回path路径(本项目相对路径)下的文件名集合 |
public URL getResource(String path) throws MalformedURLException; | 返回指定path路径(相对于项目路径)的资源URL |
public InputStream getResourceAsStream(String path); | 获取指定路径下的资源流对象 |
public RequestDispatcher getRequestDispatcher(String path); | 返回指定路径的请求转发器对象 |
public String getInitParameter(String name); | 返回指定名字的初始化参数 |
public Enumeration getInitParameterNames(); | 返回所有的初始化参数的集合 |
public boolean setInitParameter(String name, String value); | 设置初始化参数 |
public Object getAttribute(String name); | 获取ServletContext中指定名字的属性 |
public Enumeration getAttributeNames(); | 获取ServletContext中所有的属性名 |
public void setAttribute(String name, Object object); | 向ServletContext存储指定名字的object属性 |
public void removeAttribute(String name); | 移除ServletContext中指定名字的属性 |
public String getServletContextName(); | 返回web应用的名称 |
public String getRequestCharacterEncoding(); | 4.0之后才有的,获取请求的字符集编码 |
public void setRequestCharacterEncoding(String encoding); | 4.0之后出现,设置请求的字符集编码 |
public String getResponseCharacterEncoding(); | 4.0之后出现,获取响应的字符集编码 |
public void setResponseCharacterEncoding(String encoding); | 4.0之后出现,设置响应的字符集编码 |
ServletContext还能实现添加创建Servlet,Filter和Listener等…操作,具体功能可参照源码,博主觉得其他的方法用的也还是比较少,经常使用的已经标注了。