一、 通过object的toString方法对接口的思考
源码:
public String toString()
返回该对象的字符串表示。通常,toString 方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写此方法。
Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于:
getClass().getName() + '@' + Integer.toHexString(hashCode())
返回:
该对象的字符串表示形式。
直接调用:
Tomcat中的实现类名:
观察发现类名后的字符串不同的原因是,因为配置文件中有两个配置信息对象!
结论:
- 我们只需要用接口,然后使用它的方法就行了,具体实现类不用管。
- Tomcat服务器是一个实现了Servlet规范和JSP规范的容器。
二、ServletConfig接口
- ServletConfig是一个Servlet对象的配置信息对象,
ServletConfig对象中封装了一个Servlet对象的配置信息。 - 在Servlet初始化时,容器就调用了init(ServletConfig)了并传递一个ServletConfig对象。
- 一个Servlet对象对应一个ServletConfig对象。
- Servlet的四种方法:
三,ServletContext接口
Web容器在启动时会加载每个Web应用程序,并为每个Web应用程序创建一个唯一的ServletContext实例对象,该对象称为Servlet上下文对象。
- 所有Servlet共享一个ServletContext对象。
- 使用ServletContext对象获得Web应用程序的初始化参数、它是重要的作用域对象。
- ServletContext对应的是web.xml文件,是web.xml文件的代表。可以说ServletContext是所有Servlet对象的环境的代表,所有Servlet共享同一个四周环境对象(多线程共享)。
- ServletContext是在在服务器启动时被实例化,服务器关闭时会被销毁。
- 获取上下文对象操作:
ServletContext application = config.getServletContext();
- 常用方法:
<!-- 在web.xml文件中配置上下文参数,这些信息会自动封装到ServletContext对象中去-->
<context-param>
<para-name>username</para-name>
<param-value>admin</param-value>
</context-param>
<context-param>
<para-name>password</para-name>
<param-value>123</param-value>
</context-param>
//通过上下文初始化参数的name获取value
//首先获取ServletContext对象
ServletContext application = config.getServletContext();
//使用ServletContext的方法获取上下文参数的name
Enumeration<String> names = application.getInitParameter(name);
//通过上下文初始化参数的name获取value
while(names.hasMoreElements())
{
String name = names.nextElement();
String value = application.getInitParameter(name);
System.out.println(name + " = " + value);
}