第一阶段: init()初始化阶段
当客户端想Servlet容器(例如Tomcat)发出HTTP请求要求访问Servlet时,Servlet容器首先会解析请求,检查内存中是否已经有了该Servlet对象,如果有,则直接使用该Servlet对象,如果没有,则创建Servlet实例对象,然后通过调用init()方法实现Servlet的初始化工作。需要注意的是,在Servlet的整个生命周期内,它的init()方法只能被调用一次。
Servlet容器在下面的情况装载Servlet:
①Servlet容器启动时自动装载某些Servlet,实现这个需要在web.xml文件中添加1,1表示装载的顺序。
②在Servlet容器启动后,浏览器首次xiangServlet发送请求。
③Servlet重新装载时,比如tomcat进行redeploy,redeploy会销毁所有的Servlet实例浏览器再向Servlet发送请求的第一次。
第二阶段:service()处理请求阶段
这时Servlet生命周期中最重要的阶段,在这个阶段中,Servlet容器会为这个请求创建代表HTTP请求的ServletRequest对象和代表HTTP响应的ServletResponse对象,然后将它们作为参数传递给Servlet的Service()方法。
service()方法从ServletRequest对象中获得客户请求信息并处理该请求,通过ServletResponse对象生成响应结果。
在Servlet的整个生命周期内对于Servlet的每一次访问请求,Servlet容器都会调用一次Servlet的service()方法,并且创建新的ServletRequest和ServletResponse对象,也就是说,service()方法在Servlet的整个生命周期中会被调用多次。
【每收到一个http请求,服务器就会产生一个新的线程去处理】
第三阶段:destroy()终止阶段
当Web应用被终止,或者Servlet容器终止运行,或者Servlet重新装载时,Servlet容器会调用Servlet的destory()方法,在Servlet的真个生命周期中,destory方法也只能被调用一次。
`
第6步箭头画反了