1. 程式人生 > 其它 >servlet中的ServletConfig物件

servlet中的ServletConfig物件

  ServletConfig物件對應web.xml檔案中的<servlet>節點。當Tomcat初始化一個Servlet時,會建立ServletConfig物件,並將該Servlet的配置資訊封裝到一個ServletConfig物件中,可通過該物件讀取<servlet>節點中的配置資訊

<servlet>
    <servlet-name>servletName</servlet-name>
    <servlet-class>servletClass</servletclass>
    <init-param
> <param-name>key</param-name> <param-value>value</param-value> </init-param> </servlet>
  • 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();
    }
}