这个接口是Servlet 规范中的一个成员;
ServletConfig 是一个接口;
org.apache.catalina.core.StandardWrapperFacade 实现了这个接口;
结论是:Tomcat 服务器实现了这个 ServletConfig 接口
思考:
- 当服务器更换了之后,把Tomcat 换成了 jetty 之后,输出ServletConfig对象的时候,还是会出现同样的输出结果吗?
此时的输出是不一样的,因为在不同的服务器实现的不一样,可能包名是不一样的,类名可能不一样,但是都会实现ServletConfig 规范;
不会的,一个Servlet 对象会关联一个 ServletConfig 对象
两者之间是一个一对一的关系
Tomcat(WEB 服务器)创建了 ServletConfig 对象;
在Servlet 对象创建的时候 ServLetConfig 对象基本就是同时被创建出来的; (所谓的Servllet 对象就是比如UserServlet 等一系列相关的类创建的对象)
Configuration(配置的意思)
ServletConfig 对象可以翻译为:Servlet 对象的配置信息对象;
就是web.xml 的相关配置信息,经过了Tomcat 会把 xml 文件的信息自动的包装成为了一个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”);



