• ServletConfig


    一、ServletConfig对象的作用

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

    二、对象的创建时机和怎么得到

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

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

    三、Servlet的初始化参数配置

      在Servlet的配置文件中,可以使用一个或多个<init-param>标签为servlet配置一些初始化参数。(配置在某个 servlet标签)当servlet配置了初始化参数后,web容器在创建servlet实例对象时,会自动将这些初始化参数 封装到ServletConfig对象中,并在调用servlet的init方法时,将ServletConfig对象传递给servlet。进而,程序 员通过ServletConfig对象就可以得 到当前servlet的初始化参数信息。

      <servlet>
        <servlet-name>ConfigDemo</servlet-name>
        <servlet-class>gz.itcast.f_config.ConfigDemo</servlet-class>
        <!-- 初始参数: 这些参数会在加载web应用的时候,封装到ServletConfig对象中 -->
        <init-param>
            <param-name>path</param-name>
            <param-value>e:/b.txt</param-value>
        </init-param>
      </servlet>

    四、ServletConfig对象的API

    java.lang.String getInitParameter(java.lang.String name)  根据参数名获取参数值
    java.util.Enumeration getInitParameterNames()    获取所有参数
    ServletContext getServletContext()     得到servlet上下文对象
    java.lang.String getServletName()       得到servlet的名称

    五、ServletConfig的获取:

    A、菜鸟级别的方法:

    1. 创建私有变量  private ServletConfig config;
    2. 重写init方法,传入config,令this.config = config;从而获得ServletConfig对象
    public class ServletDemo1 extends HttpServlet {
        private ServletConfig config;
        public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            this.getServletConfig();
            String value=config.getInitParameter("date");
            response.getOutputStream().write(value.getBytes());
            
        }
        public void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            doGet(request,response);
        }
        public void init(ServletConfig config) throws ServletException {
            this.config=config;
        }

    B、大神级别的方法

    在上边的代码中,创建私有变量等,如果我们观察源代码的时候,觉得我们这样是多此一举,父类(GenericServlet类)已经帮我们实现过了,并且提供了一个.getServletConfig()的方法,所以我们直接调用该方法就可以得到对象了。

        public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
    
            Enumeration e=this.getServletConfig().getInitParameterNames();
            System.out.println(this.getServletConfig().getServletName());
         while(e.hasMoreElements()){
                String name=(String) e.nextElement();
                String value=this.getInitParameter(name);
                System.out.println(name+"="+value);
                
            }
        }
  • 相关阅读:
    开发了套三维光学扫描仪,可以技术转让
    见微知著 带你透过内存看 Slice 和 Array的异同
    Goland 这些技巧,学会开发效率翻倍!
    不懂汇编,也能看懂的 Go interface 原理分析
    win10创建删除文件文件夹需刷新才更新问题
    转载:java中DAO层、Service层、Control层的说明
    代码习惯
    查看网站的服务器和使用的技术
    flutter: CSS规则映射flutter控件-position
    android对话框透传Touch事件
  • 原文地址:https://www.cnblogs.com/lyjs/p/4869764.html
Copyright © 2020-2023  润新知