ServletConfig和ServletContext介绍及用法

ServletConfig

  • ServletConfig类为servlet中配置信息的类,主要用于读取配置信息。
  • 一个servlet对应一个ServletConfig对象。由Tomcat服务器创建且在默认情况下,是在用户发送第一次请求的时候创建。
  • Tomcat服务器调用servlet对象的init方法的时候需要传一个ServletConfig对象的参数给init方法。
  • 在servlet的配置文件web.xml中,可以使用一个或多个<init-param>标签为servlet配置一些初始化参数。
    <servlet>
        <servlet-name>configServlet</servlet-name>
        <servlet-class>com.yaozong.servlet.xml.ConfigServlet</servlet-class>
        <init-param>
            <param-name>username</param-name>
            <param-value>root</param-value>
        </init-param>
        <init-param>
            <param-name>password</param-name>
            <param-value>root</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>configServlet</servlet-name>
        <url-pattern>/config</url-pattern>
    </servlet-mapping>

ServletConfig接口常用的方法:

public String getInitParameter(String name); // 通过初始化参数的name获取value
public Enumeration<String> getInitParameterNames(); // 获取所有的初始化参数的name
public ServletContext getServletContext(); // 获取ServletContext对象
public String getServletName(); // 获取Servlet的name

以上方法在servlet类当中,都可以使用this去调用。(因为GenericServlet实现了ServletConfig接口)

ServletContext

  • ​​​​​一个servlet对象对应一个ServletContext(Servlet上下文),即对应一个web.xml文件。
  • 在同一个webapp(同一个应用)当中,所有的servlet对象都是共享同一个ServletContext对象的(应用域)。
  • ServletContext对象的生命周期:ServletContext对象在服务器启动阶段创建,在服务器关闭的时候销毁。(由Tomcat服务器在webapp启动时完成创建的)
  • ServletContext接口中有哪些常用的方法?
    public String getInitParameter(String name); // 通过初始化参数的name获取value
    public Enumeration<String> getInitParameterNames(); // 获取所有的初始化参数的name
    <!--以上两个方法是ServletContext对象的方法,这个方法获取的是什么信息?是以下的配置信息-->
    <context-param>
        <param-name>pageSize</param-name>
        <param-value>10</param-value>
    </context-param>
    <context-param>
        <param-name>startIndex</param-name>
        <param-value>0</param-value>
    </context-param>
    <!--注意:以上的配置信息属于应用级的配置信息,一般一个项目中共享的配置信息会放到以上的标签当中。-->
    <!--如果你的配置信息只是想给某一个servlet作为参考,那么你配置到servlet标签当中即可,使用ServletConfig对象来获取。-->
    // 获取应用的根路径(非常重要),因为在java源代码当中有一些地方可能会需要应用的根路径,这个方法可以动态获取应用的根路径
    public String getContextPath();
    // 获取文件的绝对路径(真实路径)
    public String getRealPath(String path);
// 数据量小、所有用户共享、不需修改的数据放到ServletContext这个应用域当中,会大大提升效率。
// 向ServletContext应用域中存储数据,相当于将数据存放到缓存cache当中。
// 存(向ServletContext应用域中存数据)
public void setAttribute(String name, Object value); 
// 取(从ServletContext应用域中取数据)
public Object getAttribute(String name); 
// 删(删除ServletContext应用域中的数据)
public void removeAttribute(String name); 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值