栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JavaWEB ServletConfig 接口详解

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JavaWEB ServletConfig 接口详解

1、什么是ServletConfig ?

这个接口是Servlet 规范中的一个成员;
ServletConfig 是一个接口;

2、谁去实现了这个接口?

org.apache.catalina.core.StandardWrapperFacade 实现了这个接口;
结论是:Tomcat 服务器实现了这个 ServletConfig 接口

思考:

  • 当服务器更换了之后,把Tomcat 换成了 jetty 之后,输出ServletConfig对象的时候,还是会出现同样的输出结果吗?
    此时的输出是不一样的,因为在不同的服务器实现的不一样,可能包名是不一样的,类名可能不一样,但是都会实现ServletConfig 规范;
3、两个Servlet 类共享一个ServletConfig 对象吗?

不会的,一个Servlet 对象会关联一个 ServletConfig 对象
两者之间是一个一对一的关系

4、ServletConfig 对象是谁创建的?在什么时候创建的?

Tomcat(WEB 服务器)创建了 ServletConfig 对象;
在Servlet 对象创建的时候 ServLetConfig 对象基本就是同时被创建出来的; (所谓的Servllet 对象就是比如UserServlet 等一系列相关的类创建的对象)

5、ServletConfig 接口到底是做什么使用的?作用是什么?

Configuration(配置的意思)

ServletConfig 对象可以翻译为:Servlet 对象的配置信息对象;
就是web.xml 的相关配置信息,经过了Tomcat 会把 xml 文件的信息自动的包装成为了一个ServletConfig 对象,里面装配了一些信息;就是叫做配置信息对象

6、ServletConfig 对象中到底包装了什么信息?
    
        UserServlet
        com.luobin.servlet.myservlet.UserServlet
    

ServletConfig 对象中包装的信息是:web.xml 中 标签俩面的内容;

小结一下就是:Tomcat 通过了对于 标签的解析,将 标签里面内容包装到 ServletConfig 对象里面

7、ServletConfig 里面都有什么方法呢?主要是存在 4 个方法
    
        ServletConfig1
        com.luobin.javaweb.servlet.ConfigTestServlet01
        
        
            username
            root
        
        
            password
            123456
        
    
    
        ServletConfig1
        /ServletConfig01
    

上面的 标签里面的 是初始化参数,这个初始化参数可以被 Tomcat 自动的封装到ServletConfig 对象里面的;

        // 通过使用ServletConfig 对象的两个方法,可以获取到 web.xml 文件中的初始化参数配置信息;
        Enumeration initParameterNames = config.getInitParameterNames();
        // 遍历集合
        out.println("
"); while (initParameterNames.hasMoreElements()) { String parameterName = initParameterNames.nextElement(); out.println("
"); out.println( "配置的参数的名字为: " + parameterName); } out.println("
"); String username = config.getInitParameter("username"); out.println("init 配置的参数的值为 :" + username);

主要拥有的方法有:
1、config.getInitParameterNames(); // 获取到Init 时候的所有参数的名字;
2、config.getInitParameter(“username”); // 获取到通过参数的名字映射得到参数的值;

下面是原代码里面接口的实现:

package javax.servlet;

import java.util.Enumeration;

public interface ServletConfig {
    String getServletName();

    ServletContext getServletContext();

    String getInitParameter(String var1);

    Enumeration getInitParameterNames();
}
8、 使用this 调用了 ServletConfig 里面的方法也是可以的,因为GenericServlet 这个方法实现了ServletConfig 这个接口,
  • 实际上,获取一个Servlet 对象的初始化参数,是可以不获取ServletConfig 对象的,直接通过 this 也是可以实现的
    // 父类是具有这个方法的,所以子类可以直接调用即可,不需要中间的对象的创建了
    this.getInitParameterNames();
    this.getInitParameter(“username”);
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/530844.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号