GenericServlet抽象类实现了ServletConfig接口,而HttpServlet又继承自GenericServlet抽象类。
本例使用HttpServlet抽象类来演示实现的ServletConfig 接口的方法的作用。
被实现的接口ServletConfig一共有四个的方法,其中getServletContext()方法返回的是ServletContext 对象,所以这个方法留在分析serveltContext 时一起说明。
当前如下的程序代码分别调用了三个方法:
getServletInitParameters()
getServeltInitParameter()
getServletName()
假定web.xml文件中存在如下注册的servlet和映射关系:
<servlet> <servlet-name>ConfigTestServlet</servlet-name> <servlet-class>com.longweir.servlet.ConfigTestServlet</servlet-class> <init-param> <param-name>参数名1</param-name> <param-value>参数1的值</param-value> </init-param> <init-param> <param-name>参数名2</param-name> <param-value>参数2的值</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>ConfigTestServlet</servlet-name> <url-pattern>/servlet/ConfigTestServlet</url-pattern> </servlet-mapping>
ConfigTestServletde 源码如下:
package com.longweir.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Enumeration;
public class ConfigTestServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=GBK");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>实现ServletConfig接口的方法的servlet</TITLE></HEAD>");
out.println(" <BODY>");
out.println("Servlet的名称是:"+getServletName()+"<br>"); //获取当前的servlet的名称,即 ConfigTestServlet
out.println("下面是为该servlet配置的初始化参数: <br>"); //对于该Servlet的参数配置在web.xml的<servlet></servlet>代码段中
Enumeration e=this.getInitParameterNames();
while (e.hasMoreElements())
{
String key=(String)e.nextElement();
String value=this.getInitParameter(key);
out.println("key="+key+";"+"value="+value+"<br>");
}
out.println(" </BODY>");
out.println("</HTML>");
out.close();
}
}
运行程序的结果是:
Servlet的名称是:ConfigTestServlet //返回的额servletName
下面是为该servlet配置的初始化参数:
key=参数名1;value=参数1的值 //参数名和参数值
key=参数名2;value=参数2的值