全国咨询热线:400-618-4000

Java培训之ServletConfig详解

创建时间:2016年04月26日10时55分

1.ServletConfig

ServletConfig是一个接口,它代表的是Servlet的配置信息,对应着web.xml文件中的<servlet>标签。想要获取Servlet的一些配置信息,例如,Servlet的名字就可以通过调用ServletConfig的一个方法来获得。
我们知道,当浏览器第一次访问Servlet的时候,服务器会创建该Servlet的实例,然后调用init(ServletConfig config)方法对Servlet进行初始化,其实在调用init方法之前,服务器已经根据当前Servlet在web.xml的配置信息创建了一个ServletConfig对象,最后在调用init()方法时将该对象作为参数传递给init()方法。
下面通过一张图来描述ServletConfig的一些特性,如图1-1所示:
                                  图1-1 ServletConfig介绍
通过图1-1对ServletConfig的描述,可以看出web.xml文件中每一个<servlet>元素都对应一个ServletConfig对象。
经过以上对ServletConfig对象的介绍,我们需要掌握以下几点:
  • ServletConfig实例是由Tomcat服务器创建,然后作为参数通过init()方法传递给Servlet;
  • ServletConfig中封装的是Servlet的配置信息,可以通过它来获取web.xml文件中<servlet-name>标签的内容等其他配置信息。
  • 一个Servlet类对应一个ServletConfig对象

2.ServletConfig具体功能介绍

接下来,我们查看ServletConfig的API,通过API来深入了解该对象。如图1-2所示:

图1-2 ServletConfig API
由图1-2可看出,ServletConfig接口有四个抽象方法,下面我们来分别介绍这四个方法,如表1-1所示:
方法名 方法说明
String getInitParameter(String name) 该方法是通过参数名获取Servlet在web.xml文件中配置的初始化参数。
Enumeration  getInitParameterNames() 该方法是获取Servlet在web.xml文件中配置的所有初始化参数的名称。
ServletContext  getServletContext() 该方法是获取ServletContext对象,后面会详细讲解该对象。
String  getServletName() 该方法是获取Servlet在web.xml文件中配置的名称,即<servlet-name>元素的内容。
为了更好的掌握ServletConfig对象,下面通过一个例子来详细了解ServletConfig对象的方法的使用,详细信息请参考ServletConfig案例详解,点击下载源代码,具体如下所示:
(1)创建一个web应用,取名为Example10,再创建一个类ServletThree,实现Servlet接口,然后在web.xml文件中配置信息,如例1-1所示:
例1-1 web.xml
  <servlet>
  <!—初始化参数配置 -->
  <init-param>
  <!-- 参数名 -->
  <param-name>name</param-name>
  <!-- 参数值 -->
  <param-value>zhangsan</param-value>
</init-param>
<init-param>
<param-name>password</param-name>
  <param-value>123</param-value>
  </init-param>
  <servlet-name>ServletThree</servlet-name>
  <servlet-class>cn.itcast.servlet.ServletThree</servlet-class>
  </servlet>
  <servlet-mapping>
  <servlet-name>ServletThree</servlet-name>
  <url-pattern>/ServletThree</url-pattern>
  </servlet-mapping>
由例1-1可知,我们在<servlet >标签中配置初始化参数,格式如例1-1所示,参数名为“name“、”password“,参数值分别为”zhangsan“、”123“ 。
(2)在ServletThree类中,对init()方法进行修改,在init()方法中获取初始化参数,主要代码如图1-2所示:
例1-2 init方法
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        System.out.println("init()......");
       System.out.println("init param name =:"+servletConfig.getInitParameter("name"));
       System.out.println("servlet name is:"+servletConfig.getServletName());
//获取所有的初始化参数名称     
Enumeration e=servletConfig.getInitParameterNames();
       while(e.hasMoreElements()){//遍历所有初始化参数名称
           System.out.println("initParam name:");
           System.out.println(e.nextElement());
       }
    }
(3)将Example10发布到Tomcat中,然后启动Tomcat服务器,在浏览器端地址栏输入http://localhost:8080/Example10/ServletThree,控制台打印结果如图1-3所示:

图1-3 控制台运行结果
如图1-3所示,控制台打印了init()方法中的具体实现,通过ServletConfig对象获得了在web.xml文件中配置的初始化参数并打印在控制台上。通过本案例,我们对ServletConfig对象的方法有了一定的了解,在以后的学习中,ServletConfig对象最常用的方法是getServletContext()。




本文版权归传智播客Java培训学院所有,欢迎转载,转载请注明作者出处。谢谢!
作者:传智播客Java培训学院
首发:http://www.itcast.cn/javaee