servlet中的ServletConfig对象
阅读原文时间:2022年04月01日阅读:1

  ServletConfig对象对应web.xml文件中的节点。当Tomcat初始化一个Servlet时,会创建ServletConfig对象,并将该Servlet的配置信息封装到一个ServletConfig对象中,可通过该对象读取节点中的配置信息

servletName servletClass key value

  • servletConfig.getInitParameter("key")

        可以读取web.xml文件中标签中标签中的配置信息。

  • servletConfig.getInitParameterNames()

            可以读取web.xml文件中当前标签中所有标签中的值。

<servlet>  
    <servlet-name>getCongig</servlet-name>  
    <servlet-class>www.servlet.GetConfig</servlet-class>

    <init-param>  
        <param-name>key1</param-name>  
        <param-value>value1</param-value>  
    </init-param>

    <init-param>  
        <param-name>key2</param-name>  
        <param-value>value2</param-value>  
    </init-param>  
</servlet>  
<servlet-mapping>  
    <servlet-name>getCongig</servlet-name>  
    <url-pattern>/getconfig.do</url-pattern>  
</servlet-mapping>

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;

public class GetConfig extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doPost(req,resp);
}

@Override  
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {  
    //设置响应编码  
    resp.setContentType("text/html;charset=utf-8");  
    //获取响应输出流  
    PrintWriter pw=resp.getWriter();

    //获取ServletConfig对象,当Tomcat初始化Servlet时,ServletConfig对象被创建  
    ServletConfig servletConfig=this.getServletConfig();  
    //获取所有init-param的name  
    Enumeration en=servletConfig.getInitParameterNames();  
    //遍历所有name,取出相应都value  
    //只能读取当前servlet的值  
    while (en.hasMoreElements()){  
        //取name  
        String  name=(String) en.nextElement();  
        //取value  
        String value=servletConfig.getInitParameter(name);  
        //响应给客户端  
        pw.println("name:"+name+" value:"+value);  
    }  
    //刷新流  
    pw.flush();  
    //关闭流  
    pw.close();  
}  

}