如何读取servlet的配置文件



如何读取servlet的配置文件 每个servlet在web.xml都有自己的配置文件,用的比较多的就是<init-param></init-param>中的<param-name></param-name>和<param-value></param-value>这两个参数,如何读取呢?

答案在ServletConfig这个类中。在一个Servlet中使用this.getServletConfig()方法可以得到一个ServletConfig类的对象,进而通过这个对象的getServletName()方法获得Servlet的名称,getServletnames()方法获得一个Enumeration对象,这个对象含有这个Servlet配置文件中所有<param-name>的值,并通过这些name用getInitParameter()方法获得相应的<param-value>的值。

 

下面是一段实例代码,在使用这段代码前,需要确保在web.xml中有相应的param-name与param-vlaue值

 

 

 

  1. package org.jubin;
  2. import java.io.IOException;
  3. import java.io.PrintWriter;
  4. import javax.servlet.ServletConfig;
  5. import javax.servlet.ServletException;
  6. import javax.servlet.http.HttpServlet;
  7. import javax.servlet.http.HttpServletRequest;
  8. import javax.servlet.http.HttpServletResponse;
  9. public class TestInitServlet extends HttpServlet {
  10.     private static final long serialVersionUID = 1L;
  11.     public TestInitServlet() {
  12.         super();
  13.     }
  14.     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  15.         response.setContentType(“text/html;charset=utf-8″);
  16.         PrintWriter out = response.getWriter();
  17.         out.println(this.getServletConfig().getServletName());
  18.         String s =(String) this.getServletConfig().getInitParameter(“name2″);
  19.         out.println(s);
  20.         java.util.Enumeration params = this.getServletConfig().getInitParameterNames();
  21.         while(params.hasMoreElements()){
  22.             String name = params.nextElement().toString();
  23.             out.println(“ ” + name);
  24.             String value = (String)this.getServletConfig().getInitParameter(name);
  25.             out.println(“ ” + value);
  26.         }
  27.         out.close();
  28.     }
  29.     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  30.         this.doGet(request, response);
  31.     }
  32. }