Tomcat中ServletConfig和ServletContext的区别和作用

ServletConfig: 代表当前Servlet在web.xml中的配置信息,可以通过api获取web.xml中的数据.

       在Servlet接口中init方法参数就是ServletConfig,在Servlet创建出来时,init方法立即被容器调用,由容器传入ServletConfig对象.所以可以在web.xml中的<servlet>标签中配置0个或多个<int-param>标签,来表示当前Servlet配置一些自定义的参数.称为Servlet的初始化参数. 

<servlet>

    <servlet-name>Demo1</servlet-name>

    <servlet-class>cn.tedu.servletconfig.ServletConfigDemo1</servlet-class>

  <init-param>

        <param-name>driver</param-name>

        <param-value>com.mysql.jdbc.Driver</param-value>

  </init-param>

  <init-param>

        <param-name>psd</param-name>

        <param-value>root</param-value>

  </init-param>

  </servlet>

 

ServletContext代表当前web应用.

        当前web服务器启动会依次加载web应用,之后便会为每一个web应用创建一个唯一的ServletContext对象来代表本身.这个对象会一直存活知道web应用移除出容器或服务器关闭,应用没了,ServletContext也就随之销毁了.

 

        如果有一段初始化参数, 希望不是属于某一个Servlet对象, 而是整个web应用都可以使用, 可以将这些参数配置到web.xml的根目录下, 配置在根目录下的这些信息是属于整个web应用的, 可以通过代表整个web应用的ServletContext来调用下列api来获取。

ServletContext作为域对象使用(也被称为Application作用域)

生命周期:服务器启动加载web应用后,会立刻创建代表这个web应用的ServletContext,一直驻留在内存中,指定web应用被移除或服务器关闭,ServletContext对象销毁.

作用范围:整个web应用

主要功能:在整个WEB应用内实现资源的共享

操作作用域的api:

         setAttribute(String name,Object obj);//向域中设置数据

         getAttribute(String name)//从域中获取数据

         removeAttribute(String name)//从域中移除

       Servlet的web.xml配置中可以配置初始化参数,但是这种初始化参数只能在该Servlet内部获取。而为整个web应用配置的初始化参数,通过ServletContext可在整个web应用中使用。

 

 

猜你喜欢

转载自blog.csdn.net/qq_40531768/article/details/89337681