天天看点

Servlet-ServletContext上下文对象的解释和其常见方法ServletContext

ServletContext

ServletContext是web应用中的上下文对象,它随着web应用的加载而加载,随之销毁而销毁,与web应用共存,它可以用于Servlet之间的“通信”,该web应用中的每个Servlet都可以访问到这个共同的ServletContext对象,而且它在一个web应用中仅存在一个(单例)。

我们可以将它理解为web应用中公开的仓库,该web应用下的任何Servlet都能访问到它,都能使用它,我们使用它,大部分也都是使用它存储一些公开属性。

在Servlet中获得该对象的方法:

ServletContext servletContext = this.getServletContext();

;

Servlet-ServletContext上下文对象的解释和其常见方法ServletContext

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等…操作,具体功能可参照源码,博主觉得其他的方法用的也还是比较少,经常使用的已经标注了。

继续阅读