欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ServletConfig与ServletContext

程序员文章站 2022-05-08 13:29:58
...

一、ServletConfig

【1】ServletConfig:代表当前Servlet在web.xml文件中配置信息的对象

【2】获取配置信息内容

获取初始化参数,在同一Servlet下,获取配置文件中的<init-para></init-para>参数信息

web.xml中Servlet的配置

<servlet>
    <servlet-name>ServletConfigDemo1</servlet-name>
    <servlet-class>config.ServletConfigDemo1</servlet-class>
    <init-param>
        <param-name>name</param-name>
        <param-value>张三</param-value>
    </init-param>
</servlet>
<servlet-mapping>
    <servlet-name>ServletConfigDemo1</servlet-name>
    <url-pattern>/ServletConfigDemo1</url-pattern>
</servlet-mapping>

注解配置

@WebServlet(value="/SConfigDemo2",initParams={@WebInitParam(name="name",value="张三")},@WebInitParam(name="age",value="18")})

常用方法:

getServletConfig( )                      获取ServletConfig对象。

getInitParameter(String str);        调用ServletConfig对象方法,通过名称获取初始化信息。

注意:注解配置方式和web.xml配置方式两者不能共存,否则会导致服务器无法正常启动。

二、ServletContext对象

【1】ServletContext代表整个web应用的对象,而且是一个域对象。

【2】通过ServletContext对象可以获取web.xml中的全局配置文件

<context-param>
    <param-name>driver</param-name>
    <param-value>com.mysql.jdbc.driver</param-value>
</context-param>

常用方法

this.getServletContext( )          获取ServletContext对象

getInitParameter(String str)     获取全局参数

【3】配置域属性(全局可访问)

setAttribute(String name,Object obj);       设置域属性

getAttribute(String name);                         根据name值,获取域属性的value值

removeAttribute(String name);                  根据name值,移除域属性

getAttributeNames();                                 获得所有域属性的name值

【4】ServletContext的生命周期

从服务器加载,到web应用移除服务器或者关闭服务器。

【5】作用

它作用于整个web应用,在整个web应用范围内共享数据。

【6】获取资源路径

sc.getRealPath()          可以获取从盘符到当前web应用目录的全路径名称。对需要的文件,在括号中,拼接上要获取web应用目录内哪一个文件。(存放在src下的文件,应在\\WEB-INF\\classes\\下)

getRealPath("\\WEB-INF\\classes\\conf.properties");

补充:通过字节码加载配置文件

this.class.getClassLoader().getResource("conf.properties").getPath();

如果是基础工程,则会获取src目录下的文件,如果作为web应用发布使用,这种读取方式还获取当前web应用的classes目录路径。