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