疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

ServletConfig对象的功能演示


 

 
   在本节的示例中演示了如何在Servlet中通过访问ServletConfig对象的方式来获得Servlet的配置信息。
 
例子 : 用getLastModified方法控制浏览器使用缓存内容
1.  实例说明
 
本程序将通过ServletConfig对象得到三种信息:Servlet名称、Servlet的所有初始化参数名和参数值以及ServletContext对象,并通过调用ServletContext接口的getRealPath方法来获得当前Web应用程序的本地目录。
 
2.  编写MyServletConfig类
 
MyServletConfig是一个Servlet类,在该类中实现了上述的功能,代码如下:
 
package chapter4;
 
import java.io.*;
 
import javax.servlet.*;
 
import javax.servlet.http.*;
 
import java.util.*;
 
public class MyServletConfig extends HttpServlet
 
{
 
    protected void service (HttpServletRequest request,
 
            HttpServletResponse response) throws ServletException, IOException
 
    {
 
        response.setContentType("text/html;charset=UTF-8");
 
        PrintWriter out = response.getWriter();
 
        //  得到Servlet名
 
        out.println("Servlet名称:" + this.getServletName());
 
        //  得到Servlet初始化参数名集合
 
        Enumeration<String> params = this.getInitParameterNames();
 
        //  得到每一个Servlet初始化参数,并通过getInitParameter方法得到初始化参数值
 
        while (params.hasMoreElements())
 
        {
 
            String key = params.nextElement();          //  得到参数名
 
            String value = this.getInitParameter(key);  //  得到参数值
 
            out.println(key + "&nbsp;=&nbsp;" + value + "<p/>");
 
        }
 
        //  得到ServletContext对象
 
        ServletContext context = this.getServletContext();
 
        out.println("当前Web应用程序的本地目录:" + context.getRealPath("/"));
 
    }
 
}
        在上面的代码中,通过getInitParameterNames方法得到了Servlet的所有初始化参数列表。但要注意的是该方法只返回初始化参数名的集合,要想获得某个参数的值,需要使用getInitParameter方法。
 
3.  配置MyServletConfig类
 
在该Servlet中需要配置两个初始化参数。这两个参数将在MyServletConfig类中被读取,并输出到客户端。MyServletConfig类的配置代码如下:
 
<servlet>
    <servlet-name>MyServletConfig</servlet-name>
 
    <servlet-class>chapter4.MyServletConfig</servlet-class>
 
    <!--  配置Servlet初始化参数  -->
 
    <init-param>
 
        <param-name>product</param-name>
 
        <param-value>洗衣机</param-value>
 
    </init-param>
 
    <init-param>
 
        <param-name>price</param-name>
 
        <param-value>300</param-value>
 
    </init-param>
 
</servlet>
 
<servlet-mapping>
 
    <servlet-name>MyServletConfig</servlet-name>
 
    <url-pattern>/MyServletConfig</url-pattern>
 
</servlet-mapping>
4.  测试MyServletConfig类
 
在浏览器地址栏中输入如下的URL:
 
http://localhost:8080/demo/MyServletConfig
浏览器中显示的输出结果如图4.5所示。
 
05
 
图4.5  输出Servlet的配置信息
 
        由于本书的程序都是基于Eclipse IDE for Java EE开发的,因此,用getReadPath方法输出的当前Web应用程序的本地目录是Eclipse IDE for Java EE的workspace目录及其子目录。