首页 > 技术文章 > 【Web入门系列】初探ServletConfig

ysdrzp 2018-10-29 19:36 原文

ServletConfig的作用

用于加载Servlet的初始化参数,在一个web应用可以存在多个ServletConfig对象,一个Servlet对应一个ServletConfig对象。

ServletConfig创建时机及如何得到

创建时机:在创建完Servlet对象之后,调用init方法之前创建。

得到对象:直接从有参数的init方法中得到。

Servlet的初始化参数配置

<servlet>
    <servlet-name>ConfigServlet</servlet-name>
    <servlet-class>ysdrzp.config.ConfigServlet</servlet-class>
    <init-param>
        <param-name>aaa</param-name>
        <param-value>value of aaa</param-value>
    </init-param>
    <init-param>
        <param-name>bbb</param-name>
        <param-value>value of bbb</param-value>
     </init-param>
</servlet>
<servlet-mapping>
     <servlet-name>ConfigServlet</servlet-name>
     <url-pattern>/configServlet</url-pattern>
</servlet-mapping>

 
public class ConfigServlet extends HttpServlet {

    /**
     * 以下两段代码GenericServlet已经写了,我们无需编写.
     */
    //private ServletConfig config;

    /**
     *  1)tomcat服务器把那些初始化参数在加载web应用的时候,封装到ServletConfig对象中
     *  2)tomcat服务器调用init方法传入ServletConfig对象
     */
    /*@Override
    public void init(ServletConfig config) throws ServletException {
        this.config = config;
    }*/

    @Override
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        //查询当前servlet的所有初始化参数
        Enumeration<String> enums = this.getServletConfig().getInitParameterNames();
        while(enums.hasMoreElements()){
            String paramName = enums.nextElement();
            String paramValue = this.getServletConfig().getInitParameter(paramName);
            System.out.println(paramName+"="+paramValue);
        }

        //得到servlet的名称
        String servletName = this.getServletConfig().getServletName();
        System.out.println(servletName);
    }
}

注意: Servlet的初始化参数只能由当前的这个Sevlet获取。

推荐阅读