首页 > 代码库 > JavaWeb基础: ServletContext

JavaWeb基础: ServletContext

基本概念

  • Web容器在启动时,会为每个Web应用程序都创建一个对应的ServletContext对象,它代表当前Web应用。
  • ServletContext(javax.servlet.http.ServletContext )存储了整个Web应用运行的上下文信息,即Web应用的全局信息,并且这些信息可以被不同的Servlet共享。
  • ServletConfig对象中维护了对ServletContext对象的引用,Tomcat创建Servlet对象后,在init方法中将ServletContext通过ServletConfig传递给当前的Servlet。
  • 多个Servlet共享同一个ServletContext,ServletContext对象一直存活到整个Web应用停止。
  • Servlet可以通过this.getServletContext() 来获取当前Web应用的ServletContext。通过ServletContext可以实现如下功能:
    • 数据共享:
    • 获取Web应用初始化参数:set/get params(不同Servlet之间共享全局变量,比如数据库连接信息,字符配置...)
    • 实现Servlet转发:getNameDispatch("/XX/XX") 实现信息的转发,从A Servlet跳转到B Servlet
    • 读取资源文件 :getContextPath 实现资源的查找。路径有相对路径和绝对路径,Web应用是部署在容器中,路径的识别和普通的JavaProject有差别,必须要考虑
    • 除了上述常用功能,Servlet还能实现对Listner/Filter/Session/Cookie的信息获取和配置,getMimeType,getResourcesPaths,getResource

技术分享

ServletContext(Context域对象) 实现数据共享

ServletContext 读取资源文件

 

JavaWeb基础: ServletContext