美文网首页
servlet学习(三):ServletConfig接口

servlet学习(三):ServletConfig接口

作者: 程序员三千_ | 来源:发表于2019-02-25 11:02 被阅读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对象。

    相关文章

      网友评论

          本文标题:servlet学习(三):ServletConfig接口

          本文链接:https://www.haomeiwen.com/subject/ncuwyqtx.html