读源码学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的值      

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值