携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第30天,点击查看活动详情
1、servlet生命周期
(1)什么是servlet生命周期?
servlet容器如何创建servlet对象、如何初始化、
如何调用servlet对象的方法处理请求,以及如何
销毁servlet对象的整个过程。
(2)生命周期的四个阶段
1)实例化
a,什么是实例化?
容器调用servlet的构造器创建一个servlet对象,
在默认情况下,不管有多少个请求,容器只会创建一个servlet对象。
b,什么时候实例化?
情况1:在默认情况下,容器只有收到请求之后,才会创建servlet对象。
情况2: 容器在启动的时候,就将某些servlet对象创建好。
这些servlet必须配置一个参数 参数
参数:
大于等于0的整数。
值越小,优先级越高。
2)初始化
a,什么是初始化
容器创建好servlet对象之后,会立即调用init方法。
b,怎样实现初始化处理逻辑?
b1,一般情况下,不需要写init方法,
因为GenericServlet已经实现了init方法:
将容器创建的ServletConfig对象保存下来,
并且提供了getServletConfig方法来获得该对象。
调用了一个空的init方法 (该init方法用于子类去override)。
b2,如果要实现自己的初始化处理逻辑,只要 override init() 方法。
b3,初始化方法只会执行一次。
b4,ServletConfig对象可以用来访问,servlet的初始化参数。
3)就绪【未有demo,查找源码或ppt】
a,什么是就绪
servlet容器收到请求之后,会调用servlet对象的service方法来处理请求。
b,如何编写业务处理逻辑?
方式一:override HttpServlet的service方法。
HttpServlet的service方法是这样实现的:
依据请求类型调用doGet或者doPost方法,但是,
doGet方法和doPost方法只是简单地抛出了一个异常。
方式二:override HttpServlet的doGet和doPost方法。
4)销毁【未有demo,查找源码或ppt】
a,什么是销毁
容器依据自身的算法来决定是否销毁servlet对象。
容器在销毁servlet对象之前,会调用servlet对象的destroy方法。
b,destroy方法只会执行一次。
(3)servlet生命周期相关的几个接口与类【未有demo,查找源码或ppt】
a,Servlet接口
init(ServletConfig config)
service(ServletRequest req,ServletResponse res)
destroy()
b,GenericServlet抽象类:
实现了Servlet接口中的部分方法(实现了init,destroy方法)。
c,HttpServlet抽象类:
继承了GenericServlet,实现了service方法。
d,ServletConfig接口
e,ServletRequest接口是HttpServletRequest接口的父接口,
ServletResponse接口是HttpServletResponse的父接口。