servlet-ServletConfig接口1

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;	
	}
}

说了半天还是没到正题上,下一个写

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值