ServletContext对象

了解ServletContext对象前先了解一下ServletConfig对象

<!--Servlet外的context-param是Servlet上下文信息-->
<context-param>
    <param-name>name</param-name>
    <param-value>gacl</param-value>
</context-param>
<context-param>
    <param-name>password</param-name>
    <param-value>123</param-value>
</context-param>
<servlet>
    <servlet-name></servlet-name>
    <servlet-class></servlet-class>
    <!--Servlet里的init-param是Servlet的配置信息-->
  <init-param>
        <param-name>charset</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
    <load-on-startup></load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name></servlet-name>
    <url-pattern></url-pattern>
</servlet-mapping> 

1.ServletContext对象是什么

  ServletContext指的是Servlet上下文

  一个web项目只有一个web.xml文件,web.xml文件在web服务器启动的时候被解析,在解析web.xml文件过程中创建并实例化ServletContext对象。所以一个web项目只有一个ServletContext对象。

  一个web.xml文件中可以配置多个Servlet,所以一个web项目可以有多个Servlet对象,这些Servlet对象共享一个ServletContext对象。

  ServletContext对象在web服务器关闭的时候被销毁。

2.Servlet、ServletConfig、ServletContext三个对象之间的关系

  一个Servlet对象对应一个ServletConfig对象

  一个web项目中所有的Servlet对象共享一个ServletContext对象

  可以通过ServletConfig对象获取ServletContext对象

3.ServletContext对象中有哪些方法

  ServletContext application = config.getServletContext();

  1)Servlet上下文中存储数据:application.setAttribute(String name,Object obj);

  2)从Servlet上下文中读取数据:Object obj  = application.getAttribute(String name);

  3)删除Servlet上下文中的数据:application.removeAttribute(String name);

  4)获取Servlet上下文参数所有的name:Enumeration<String> names = application.getInitParameterNames();

  5)通过Servlet上下文参数的name获取value:String value = application.getInitParameter(String name);

  6)通过ServletContext获取文件的绝对路径:String realPath = application.getRealPath(“/index.html”); 注意:必须保证webapp的根下有index.html

原文地址:https://www.cnblogs.com/luna-hehe/p/14519315.html