ServletConfig和ServletContext的意思

一.ServletConfig接口
当servlet被创建时,会为每个servlet创建一个唯一的ServletConfig对象,用来封装当前servlet的初始化参数信息。
在servlet的运行期间,经常需要调用一些辅助信息。例如,文件使用的编码,公司名称等,这些信息可以在web.xml文件中使用一个或者多个标签进行配置。
当tomcat初始化一个Servlet时,会将该servlet的配置信息封装到一个ServletConfig对象中,通过调用init(ServletConfig config) 方法将ServletConfig对象传递给Servlet。
1 在web.xml中某个Servlet中配置一些信息

<servlet>
     <servlet-name>Url1Servlet</servlet-name>
     <servlet-class>cn.itcast.web.Url1Servlet</servlet-class>
      <!-- 在servlet标签中配置当前servlet的初始化信息 -->
     <init-param>
           <!-- 配置参数的key -->
           <param-name>name</param-name>
           <!-- 配置参数的value -->
           <param-value>张三</param-value>
     </init-param>
</servlet>

2、编写servlet类,实现读取web.xml文件中对应的参数信息,将参数信息显示浏览器中

    // 1.1 获得ServletConfig对象
     ServletConfig config = this.getServletConfig();
       //1.2 获得name的值
    String name= config.getInitParameter("name");

    response.getWriter().println("name= " + name);

二.ServletContext接口
当tomcat启动时,会为每个web应用创建一个唯一的ServletContext对象代表当前Web应用.该对象不仅封装了当前web应用的所有信息,而且实现了多个servlet的数据共享.
在每个项目中可以有多个Servlet程序,每个Servlet程序都是独立的。Servlet中的配置信息可以使用ServletConfig获取,而当前这个项目的配置信息,就必须使用描述这个项目的ServletContext对象获取。
1 在web.xml中配置全局(项目)参数信息

<context-param>
    <param-name>name</param-name>
    <param-value>张三</param-value>
 </context-param>
  <context-param>
    <param-name>age</param-name>
    <param-value>23</param-value>
 </context-param>

2 根据key获取value

    // 2 从ServletContext对象中获取项目的初始化参数信息
        ServletContext context = this.getServletContext();
        // 第一种:获得参数信息
        String name= context.getInitParameter("name");
        String age= context.getInitParameter("age");
        response.getWriter().println(name+ ">>>" + age);
        // 第二种:先获得所有key 遍历key 根据key获取对应初始化参数值
        Enumeration<String> en = context.getInitParameterNames();
        // 遍历
        while (en.hasMoreElements()) {
            // 有值
            String key = en.nextElement();
            // 根据key获取对应初始化参数值
            String val = context.getInitParameter(key);
            response.getWriter().println(key + "::::" + val + "<br/>");

3.由于一个web应用程序中的所有Servlet共享同一个ServletContxt对象,因此ServletContext中的属性可以被Web应用程序中的所有servlet访问。在ServletContext中分别定义了用于 增加、删除、获取ServletContext属性的4个方法:
这里写图片描述
这里写图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值