-----------------------------------servlet的生命周期----------------------------------
Servlet生命周期
javax.servlet.Servlet接口中,有三个方法说明了Servlet的生命周期:
- void init(ServletConfig):创建后马上调用init()完成初始化;
- void service(ServletRequest,ServletResponse):每次处理请求时调用service()方法;
- void destroy():当Tomcat要销毁Servlet实例时,先调用destroy()方法。
Servlet对象的实例默认情况下是在浏览器第一次调用servlet时候被创建的(可以修改其创建时机后续讲解)
现在你应该已经清楚了,Servlet的实例不由我们创建,Servlet的方法不由我们来调用,这一切都是由Tomcat来完成!!!这就是说由Tomcat来管理Servlet,而我们只需要去编写Servlet实现类,并将其部署到web.xml文件中去!
再次提醒,只有这三个方法是生命周期中的方法。也就是说,生命周期方法会被Tomcat在不同的时间点来调用!而其它方法就不会被调用了!!!如果你在自己写的Servlet中添加了其他方法,那么Tomcat也是不会去调用它们的!但你可以让生命周期方法去调用你自己写的方法就OK了!
面试常问:
servlet的生命周期
ServletDemo2对象示例并不是由我们手动创建,而是web容器给我们创建
void init(ServletConfig config) :
默认情况当servlet被第一次访问的时候init会被调用,
说明servlet的实例默认情况下是第一次被访问时创建的(可以改的),第二次往后都不会再被调用
void service(ServletRequest request,ServletResponse response):
每次有请求来的时候都会被调用
void destroy():
当ServletDmeo2销毁的时候调用或者tomcat服务器停用的时候