jzinfo 发表于 2013-2-7 18:51:07

读源码学Servlet(2)Servlet实现的ServletConfig接口的应用

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的值       
 
页: [1]
查看完整版本: 读源码学Servlet(2)Servlet实现的ServletConfig接口的应用