服务器加载Servlet 加载Servlet容器 |
调用 Servlet构造函数 创建servlet对象,也就是实例化 |
init(ServletConfig conf)方法 init()方法是servlet生命的起点。一旦加载了某个servlet,服务器将立即调用它的init()方法 |
service(doGet、doPost) |
destroy()方法 destroy()方法标志servlet生命周期的结束 |
服务器卸载Servlet完毕 |
Servlet的生命周期分为5个阶段:加载、创建、初始化、处理客户请求、卸载。
(1)加载:容器通过类加载器使用servlet类对应的文件加载servlet
(2)创建:通过调用servlet构造函数创建一个servlet对象
(3)初始化:调用init方法初始化
(4)处理客户请求:每当有一个客户请求,容器会创建一个线程来处理客户请求
(5)卸载:调用destroy方法让servlet自己释放其占用的资源
注意:创建Servlet的实例是由Servlet容器来完成的,且创建Servlet实例是在初始化方法init()之前,
servlet是由Servlet容器负责加载Servlet类,创建Servlet对象并实例化,然后调用Servlet的init方法,进行初始化,之后调用Service方法。实例化和初始化不同0.0
(1)Servlet会在服务器启动或第一次请求该Servlet的时候开始生命周期,在服务器结束的时候结束生命周期。
(2)在生命周期中,init(ServletConfig conf)方法与destory()方法均被服务器执行一次,而service()在每次客户端请求Servlet时都被执行。以前的例子都是在doGet或者doPost中读取,每执行一次doPost就会读取一次,我们可以把读取初始化参数写在init方法里。
HttpServlet提供了一个更简单的不带参数的替代方法init()。HttpServlet加载时会执行这个不带参数的init()方法。
注解@PostConstruct与注解@PreDestroy
这两个注解被用来修饰一个费静态的Void()方法,而且这个方法不能有抛出异常声明。