ServletContext是servlet与servlet容器之间的直接通信的接口。Servlet容器在启动一个Web应用时,会为它创建一个servletContext对象。每个web应用有唯一的servletContext对象。同一个web应用的所有servlet对象共享一个serveltContext,servlet对象可以通过它来访问容器中的各种资源。
ServletContext对象获得几种方式:
Javax.servlet.http.HttpSession.getServletContext()
Javax.servlet.jsp.PageContext.getServletContext()
Javax.servlet.ServletConfig.getServletContext()
servletContext接口提供的方法分为以下几种类型:
用于在Web应用范围内存取共享数据的方法。
setAttribute(String name, Object object)
把一个java对象和一个属性名绑定,并存放到ServletContext中,参数name指定属性名,参数Object表示共享数据。
getAttribute(String name)
根据参数给定的属性名,返回一个Object类型的对象。
getAttributeNames()
返回一个Enumeration对象,该对象包含了所有存放在ServletContext中的属性名。
removeAttribute(String name)
根据参数指定的属性名,从servletContext对象中删除匹配的属性。
访问当前Web应用的资源
getContextpath()
返回当前web应用的URL入口。
getInitParameter(String name)
返回web应用方位内的匹配的初始化参数值。在web.xml中<web-app>元素中<context-param>元素表示应用范围内的初始化参数。
getInitParameterNames()
返回一个Enumeration对象
getServletContextName()
返回web应用的名字。即<web-app>元素中<display-name>元素的值。
getRequestDispatcher(String path)
返回一个用于向其他web组件转发请求的RequestDispatcher对象。
访问servlet容器的相关信息
getContext(String uripath)
根据参数指定的url,返回当前servlet容器中其他web应用的servletContext()对象。
访问web容器的相关信息
getMajorVersion()
返回servlet容器支持的java servlet API 的主板本号。
getMinorVersion()
返回servlet容器支持的java Servlet API的此版本号。
getServerInfo()
返回servlet容器的名字和版本。
访问服务器端的文件系统资源
getRealPath(String path)
根据参数指定的虚拟路径,返回文件系统中的一个真实的路径。
getResource(String path)
返回一个映射到参数指定的路径的url。
getResourceAsStream(String path)
返回一个用于读取参数指定的文件的输入流。(把文件读到输入流中去)
getMimeType(String file)
返回参数指定的文件的MIME类型。
输出日志
log(String msg)
向servlet的日志文件中写日志。
log(String message, Throwable throwable)
向servlet的日志文件中写错误日志,以及异常的堆栈信息。