ServletConfig和ServletContext的意思

来源:互联网 发布:淘宝网开通账户 编辑:程序博客网 时间:2024/06/10 09:16

一.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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

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

    // 1.1 获得ServletConfig对象     ServletConfig config = this.getServletConfig();       //1.2 获得name的值    String name= config.getInitParameter("name");    response.getWriter().println("name= " + name);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

二.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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

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/>");
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

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

原创粉丝点击