servlet -servletconfig接口
我们javaweb程序员实际上一直是在面向接口去调用方法,servletconfig就是一个接口。
研究javax.servlet.ServletConfig接口
1、首先要知道javax.servlet.ServletConfig是一个接口,帮助文档看
2、Apache Tomcat服务器实现了Servlet规范,Tomcat服务器专门写了一个 ServletConfig接口去实现类,实现类的完整类名叫:
org.apache.catalina.core.StandarWrapperFacade TomCat的源码是开放的,这个可以去源码里去找,但是这个不用我们管,我们写的时候调用的是接口里的东西。
3、假如我们换一个服务器,它的类名就改变了,但这些实现类我们都不需要关心,只需要知道ServletConfig的接口里,有哪些可以使用的方法就好了
4、Tomcat服务器是一个实现了Servlet规范个JSP规范的容器
5、ServletConfig接口中有哪些常用的方法?
6、ServletConfig到低是什么?
-ServletConfig 是一个Servlet对象的一个配置信息对象,ServletConfig对象中封装了一个Servlet对象的配置信息,Servlet的配置信息在web.xml文件中
-一个Servlet对象对应这一个ServletConfig对象,100个Servlet对象对应着100个ServletConfig对象
//比如一个AServlet类继承了Servlet接口
public class ASerclet implements Servlet{
@Override
public void init(ServletConfig config)throws ServletException{
System.out.println("AServlet's ServletConfig ="+config.toString())
}
@Override
public void service(ServletResquest request,ServletResponse response)throws ServletException, IOException{
}
@Override
public void destory(){
}
@Override
public ServletConfig getServletConfig(){
return null;
}
@Override
public String getServletInfo(){
return null;
}
}
7、我们要将init方法上的ServletConfig参数可以在Service方法中,因为我们程序员主要编写的方法就是service方法,init方法在servlet生命周期中只能执行一次,而service可以一直执行,在service方法中我们可能使用到ServletConfig!!
—在init方法中完成:局部变量赋值给实例变量config
—实现getServletConfig方法,提供公开的get方法目的是供子类使用
因此我们可以将以上代码改为
public class ASerclet implements Servlet{
private ServletConfig config;
@Override
public void init(ServletConfig config)throws ServletException{
System.out.println("AServlet's ServletConfig ="+config.toString())
//将局部变量config赋值给实例变量config
//目的:在service方法中也可以使用config
this.config = config;
}
@Override
public void service(ServletResquest request,ServletResponse response)throws ServletException, IOException{
}
@Override
public ServletConfig getServletConfig(){
// 直接返回config
/*目的:上边config是AServlet的属性私有化,
如果要是AServlet有一个子类的话就没有办法访问了,
若子类想用config的话直接调用getServletConfig就可以了
*/
return config;
}
@Override
public String getServletInfo(){
return null;
}
}
说了半天还是没到正题上,下一个写