zoukankan      html  css  js  c++  java
  • ServletConfig对象

    下图为实现了Servlet接口的一个Servlet实现类,里面有该类默认的方法。参与Servlet生命周期的方法有:init方法、service方法、destroy方法

    本文讲的是init方法的参数:ServletConfig对象

    1.ServletConfig对象是什么

      ServletConfig对象是Servlet对象的配置信息,是servlet对象的初始化参数。这些配置信息是通过<init-param>标签在web.xml中配置的。

    <servlet>
        <servlet-name></servlet-name>
        <servlet-class></servlet-class>
        <init-param>
            <param-name>name</param-name>
            <param-value>gacl</param-value>
        </init-param>
        <init-param>
            <param-name>password</param-name>
            <param-value>123</param-value>
         </init-param>
      <init-param>
            <param-name>charset</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
        <load-on-startup></load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name></servlet-name>
        <url-pattern></url-pattern>
    </servlet-mapping>    

      当web容器在创建Servlet实例对象时,会自动将这些初始化参数封装到ServletConfig对象中,并在调用Servlet的init方法时,将ServletConfig对象传递给Servlet。进而,我们通过ServletConfig对象就可以得到当前Servlet的初始化参数信息。

     2.如何在service方法中使用ServletConfig对象

      1)定义实例变量ServletConfig config

      2)在init方法中将局部变量赋值给实例变量

    3.如何在子类中使用ServletConfig对象

      实现getServletConfig方法,在子类中调用此方法

    import java.io.IOException;
    import java.util.Enumeration;
    
    import javax.servlet.Servlet;
    import javax.servlet.ServletConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    
    public class DefaultServletMethods implements Servlet {
    
        /**
         * 定义ServletConfig对象来接收配置的初始化参数
         */
        private ServletConfig config;
    
        @Override
        public void destroy() {
        }
    
        @Override
        public ServletConfig getServletConfig() {
            return config;//返回实例变量
        }
    
        @Override
        public String getServletInfo() {
            return null;
        }
    
        @Override
        public void init(ServletConfig arg0) throws ServletException {
            this.config = arg0;
        }
    
        @Override
        public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
            // 获取在web.xml中配置的初始化参数
            // 1.获取指定的初始化参数
            String paramVal = this.config.getInitParameter("name");
            // 2.获取所有的初始化参数
            Enumeration<String> e = config.getInitParameterNames();
            while (e.hasMoreElements()) {
                String name = e.nextElement();
                String value = config.getInitParameter(name);
            }
        }
    }

    4.Servlet和ServletConfig的关系

      一个Servlet对象会对应一个ServletConfig对象

    5.ServletConfig对象中有哪些方法

       ServletConfig对象一共有4个方法

      1)String getInitParameter("name"):通过初始化参数的name获取value值

      2)Enumeration<String> getInitParameterNames():获取所有初始化参数的name

      3)String getServletName():获取Servlet对的名字<servlet-name>名字</servlet-name>

      4)ServletContext getServletContext():通过ServletConfig对象获取ServletContext对象

  • 相关阅读:
    哈希算法原理和一致性哈希算法
    负载均衡之轮循算法
    Mybatis的使用
    Spring与SpringMVC的整合
    编程式事务与声明式事务
    八大排序方法及对Arrays类的排序实现探讨
    单例模式的线程安全性
    HotSpot对象的创建及内存布局
    逃逸分析、栈上分配、标量替换、同步替换
    java编译器和解释器
  • 原文地址:https://www.cnblogs.com/luna-hehe/p/14505401.html
Copyright © 2011-2022 走看看