全国咨询/投诉热线:400-618-4000

Java培训之ServletConfig详解

更新时间:2016年04月26日10时55分 来源:传智播客Java培训学院 浏览次数:

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 

javaee

python

web

ui

cloud

test

c

netmarket

pm

Linux

movies

robot

uids

北京校区

    14天免费试学

    基础班入门课程限时免费

    申请试学名额

    15天免费试学

    基础班入门课程限时免费

    申请试学名额

    15天免费试学

    基础班入门课程限时免费

    申请试学名额

    15天免费试学

    基础班入门课程限时免费

    申请试学名额

    20天免费试学

    基础班入门课程限时免费

    申请试学名额

    8天免费试学

    基础班入门课程限时免费

    申请试学名额

    20天免费试学

    基础班入门课程限时免费

    申请试学名额

    5天免费试学

    基础班入门课程限时免费

    申请试学名额

    0天免费试学

    基础班入门课程限时免费

    申请试学名额

    12天免费试学

    基础班入门课程限时免费

    申请试学名额

    5天免费试学

    基础班入门课程限时免费

    申请试学名额

    5天免费试学

    基础班入门课程限时免费

    申请试学名额

    10天免费试学

    基础班入门课程限时免费

    申请试学名额