servlet学习(三):ServletConfig接口

2019-02-25  本文已影响13人  程序员三千_

ServletConfig接口简介

    在 Servlet 接口的 init()方法中有一个参数 ServletConfig,这个参数类型是个接口,里面是一些 在 web.xml 中对当前 Servlet类的配置信息。Servlet 规范将Servlet 的配置信息全部封装到了 ServletConfig 接口对象中。在tomcat调用 init()方法时,首先会将 web.xml 中当前 Servlet 类的配置信息封装为一个对象。这个对象的类型实现了 ServletConfig 接口, Web 容器会将这个对象传递给init()方法中的 ServletConfig 参数。

ServletConfig中的方法

getInitParameter(): 获取指定名称的初始化参数值。例如从下面的servlet中调用 getInitParameter("userName");方法会返回字符串"monkey1024"。

getInitParameterNames():获取当前 Servlet 所有的初始化参数名称。其返回值为枚举类型 Enumeration。

getServletName():获取当前 Servlet 的中指定的 Servlet名称。如下面中的 ServletName 为"configServlet"。

getServletContext():获取到当前 Servlet 的上下文对象 ServletContext,这是个非常重要的对象,将在下一节中详细介绍。

创建一个servlet:

public class LifeServletimplements Servlet {

private ServletConfigconfig;

    public LifeServlet(){

System.out.println("无参构造方法执行");

    }

@Override

    public void init(ServletConfig servletConfig)throws ServletException {

System.out.println("init");

        System.out.println("init方法中ServletConfig:" + servletConfig);

        this.config = servletConfig;

    }

@Override

    public ServletConfiggetServletConfig() {

return this.config;

    }

@Override

    public void service(ServletRequest servletRequest, ServletResponse servletResponse)throws ServletException, IOException {

System.out.println("service");

        String userName =config.getInitParameter("userName");

        System.out.println("userName=" + userName);

        Enumeration param =config.getInitParameterNames();

        while(param.hasMoreElements()){

String name = param.nextElement();

            String value =config.getInitParameter(name);

            System.out.println(name +"=" +  value);

        }

System.out.println("ServletName=" +config.getServletName());

    }

@Override

    public StringgetServletInfo() {

return null;

    }

@Override

    public void destroy() {

System.out.println("destroy");

    }

}

ServletConfig的特点

    每一个servlet都对应一个ServletConfig用于封装各自的配置信息,即有几个servlet就会产生几个ServletConfig对象。

上一篇 下一篇

猜你喜欢

热点阅读