详解Javaweb中servlet和GenericServlet的关系
JAVAWEB中大多数都是接口
servlet是接口
servletConfig是接口,
等等这个接口都是javax提供的,只要是有些接口让我们来实现,例如servlet这个接口就是我们来实现,但是
有些接口是由tomcat来实现,例如serveltconfig这个接口就是有tomcat实现的。
servlet
在servlet中有5个方法:
servletConfig getServletConfig()
String getServletInfo()
void init()
void service(req,res)
void destory()
这5个方法中三个是生命周期方法
GenericServlet类
这个类实现了servlet这个接口,而且实现这个servlet中的方法
//自己实现一个山寨版的GenericServlet类,这个类正常是tomcat实现的,我们不需要去写,在现实开发中,我们
//只要继承GenericServlet即可!!
class GerericServlet implements servlet{
//定义一个成员变量,serveltconfig
private servletConfig config;
//实现初始化,init方法
public void init(ServletConfig config){
//注意:这个方法是由服务器tomcat调用,而且只调用一次
//由于,这个serveltconfig参数是由tomcat传递给这个方法的,所以我们可以使用一个成员变量的方法,将这
//个serveltconfig保存起来,然后可以在其他的地方调用!!
//由于这个init方法是最先调用的,所以可以让getservletConfig方法调用时候,可以访问到servletconfig
不会造成空指针异常
this.config=config;
//调用无参数的init方法
init();
}
//实现getservletConfig方法
public servletConfig getServletConfig(){
//直接将成员变量返回即可!
return this.config;
}
//自己定义的无参数的init方法
public void init(){
//子类重写,可以用来初始化一些动作,这个方法的调用放在带参数的init方法中,让服务器自动调用
}
//实现的service方法
public void service(servletRequest req,servletResponse res){
//请求,回应的动作,子类重写调用
}
//实现getservletInfo方法,这是一个没有用的方法
public String getServletInfo(){
//没有用的方法
return "我是一个快乐的servlet";
}
//实现destory方法
public void destory(){
//子类调用使用,一般这个destory方法中是用来操作非内存资源,比如关闭io流等动作
}
}
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。