学科分类
目录
Java Web

ServletConfig接口

在Servlet运行期间,经常需要一些辅助信息,例如,文件使用的编码,使用Servlet程序的公司等,这些信息可以在web.xml文件中使用一个或多个<init-param>元素进行配置。当Tomcat初始化一个Servlet时,会将该Servlet的配置信息封装到一个ServletConfig对象中,通过调用init(ServletConfig cofig)方法将ServletConfig对象传递给Servlet。ServletConfig定义了一系列获取配置信息的方法,接下来通过一张表来描述ServletConfig的常用方法,如表1所示。

表1 ServletConfig接口的常用方法

方法说明 功能描述
String getInitParameter(String name) 根据初始化参数名返回对应的初始化参数值
Enumeration getInitParameterNames() 返回一个Enumeration对象,其中包含了所有的初始化参数名
ServletContext getServletContext() 返回一个代表当前Web应用的ServletContext对象
String getServletName() 返回Servlet的名字,即web.xml中<servlet-name>元素的值

了解了ServletConfig接口的常用方法。接下来以getInitParameter()方法为例,分步骤讲解该方法的使用,具体如下:

(1)首先在web.xml文件中为Servlet配置一些参数信息,具体如下:

<servlet>
    <servlet-name>TestServlet02</servlet-name>
    <servlet-class>cn.itcast.chapter04.servlet.TestServlet02</servlet-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
 </servlet>
<servlet-mapping>
    <servlet-name>TestServlet02</servlet-name>
    <url-pattern>/TestServlet02</url-pattern>
</servlet-mapping>

上面的参数信息中<init-param>节点表示要设置的参数,该节点中的<param-name>表示参数的名称,<param-value>表示参数的值,我们在<init-param>节点中为TestServlet02配置了一个名为“encoding”的参数,并且参数的值为UTF-8。

(2)编写TestServlet02类,实现读取web.xml文件中的的参数信息,TestServlet02的实现代码如例1所示。

例1 TestServlet02.java

 1    package cn.itcast.chapter04.servlet;
 2    import java.io.*;
 3    import javax.servlet.*;
 4    import javax.servlet.http.*;
 5    public class TestServlet02 extends HttpServlet {
 6        protected void doGet(HttpServletRequest request,
 7                HttpServletResponse response) throws ServletException, 
     IOException {
 8            PrintWriter out = response.getWriter();
 9             // 获得ServletConfig对象
 10            ServletConfig config = this.getServletConfig();
 11            // 获得参数名为encoding对应的参数值
 12            String param = config.getInitParameter("encoding");
 13             out.println("encoding="+param);
 14        }
 15        protected void doPost(HttpServletRequest request,
 16                HttpServletResponse response) throws ServletException, 
     IOException {
 17            this.doGet(request, response);
 18        }
 19    }

(3)启动Tomcat服务器,在浏览器的地址栏中输入URL地址http://localhost:8080/chapter04/ TestServlet02访问TestServlet02,显示的结果如图1所示。

图1 运行结果

从图1可以看出,在web.xml文件中为TestServlet02配置的编码信息被读取了出来。由此可见,通过ServletConfig对象可以获得web.xml文件中的参数信息。

点击此处
隐藏目录