实例化,初始化,服务,销毁。。。
- 实例化:根据
Servlet
请求的路径(例如:home.do
),查找该Servlet
的实例。如果实例不存在,则通过调用构造方法,完成Servlet
实例的创建。 - 初始化:初始化(Initialization):当Servlet被容器加载时,会调用其init()方法进行初始化操作。在这个阶段,可以进行一些必要的设置和资源的初始化。
- 服务:通过该
Servlet
的实例,调用service()
方法,如果子类没有重写该方法,则调用HttpServlet父类的service()
方法,在父类的该方法中进行请求方式的判断,如果是GET
请求,则调用doGet()
方法;如果是POST
请求,则调用doPost()
方法;服务(Service):一旦Servlet被初始化完成,它就可以接收并处理客户端的请求。每当有请求到达时,容器会调用Servlet的service()方法来处理请求,并生成响应。
如果子类重写doXXX()
方法,则调用子类重写后的doXXX()
方法;
如果子类没有重写doXXX()
方法,则调用父类的doXXX()
方法,在父类的方法实现中,返回一个405
状态码的错误页面。
405状态码:代表请求的方式服务器不提供支持。
4.销毁(Destroy):当Servlet不再需要时,容器会调用其destroy()方法进行销毁操作。在这个阶段,可以释放一些资源,关闭数据库连接等清理工作。
需要注意的是,Servlet的生命周期由容器管理,开发者只需要实现相应的方法即可。容器会根据需要创建和销毁Servlet实例,并在适当的时候调用相应的方法。这样可以确保Servlet在运行期间始终处于可用状态,并且能够及时释放资源,提高系统的性能和稳定性。