一、概述
1.一个Web App由一个或多个Servlet组成,在提供一个URL路径发起对一个Servlet请求的过程中,本质是在调用执行Servlet实例的doXXX()方法。该Servlet实例创建和使用的过程,被称为Servlet的生命周期。
2.Servlet生命周期包括:实例化,初始化,服务,销毁。
二、具体实现
1、实例化:根据Servlet请求的路径(例如:home.do),查找该Servlet的实例。如果实例不存在,则通过调用构造方法,完成Servlet实例的创建
2、 初始化:通过该Servlet的实例,调用init()方法,执行初始化的逻辑。(方便演示,重写了父类HttpServlet的init()方法)
3、 服务:通过该Servlet的实例,调用service()方法,如果子类没有重写该方法,则调用HttpServlet父类的service()方法,在父类的该方法中进行请求方式的判断,如果是GET请求,则调用doGet()方法;如果是POST请求,则调用doPost()方法;
如果子类重写doXXX()方法,则调用子类重写后的doXXX()方法;
如果子类没有重写doXXX()方法,则调用父类的doXXX()方法,在父类的方法实现中,返回一个405状态码的错误页面。
此为父类HttpServlet的service()方法
父类中的doXXX()方法,例如doGet()方法
请求方式的不同,需要调用不同的请求方法
若我将此doGet()方法注释,父类的service()方法发现未重写doGet()方法,则会调用自己的该方法,返回405错误参数
4
4、销毁:服务器关闭或重启时,会销毁所有的Servlet实例,会调用Servlet实例的destroy()方法。(方便演示,重写了父类的destory()方法)
三、运行结果
将Tomcat服务器终止,会销毁Servlet