【javaee2022】Servlet 生命周期简介说明

1 Servlet生命周期的概念说明:

Servlet生命周期指一个Servlet创建到销毁的过程,我们将这个过程称之为"Servlet生命周期"。
生命周期有其固定的一些生命动作,也就是方法,即俗称的钩子函数。到哪个点儿,就执行哪个方法。
比如初始化时,执行init()方法,运行时执行service()方法,销毁时执行destroy()方法等。

注意,servlet在开发时,我们写的是类。
而在运行时,我们用的是servlet的对象,也就是组件。

2 每一个Servlet都拥有以下处理过程

Servlet初始化后调用init()方法
Servlet调用service()方法来处理客户端的请求
Servlet销毁前调用destroy() 方法
最后Servlet是由JVM的垃圾回收器进行垃圾回收的

3 init()方法

见名估计,就是初始化方法。事先执行,只执行一次。
init()方法在第一次创建Servlet时被调用后续用户调用此Servlet时,无需再次运行init()方法。
当用户第一次调用Servlet对应URL时,Servlet被创建,我们也可以指定Servlet在服务器中第一次启动时加载
当用户调用一个Servlet时,就会创建一个Servlet实例,容器创建实例的过程,即new一个对象的过程,可以使用servlet的构造器去检验!!!
而servlet的服务是多线程的:每一个用户请求都会产生一个新的线程,适当的时候移交给 doGet 或 doPost 方法
init() 方法简单地创建或加载一些数据,这些数据将被用于 Servlet 的整个生命周期

例:init 方法
public void init() throws ServletException {
// 初始化代码…
}

4 service()方法

service() 方法是执行实际任务的主要方法
Servlet容器(即Web 服务器)调用service()方法来处理来自客户端(浏览器)的请求
将格式化数据返回给客户端
当服务器收到Servlet请求时,
服务器会产生一个新的线程并调用服务

service() 方法中会检查http的请求类型(GET、POST、PUT、DELETE等),
并调用相应的doGet、doPost、doPut,doDelete 等方法
例:
service方法定义
public void service(ServletRequest request,
ServletResponse response)
throws ServletException, IOException{
}
service()方法由web容器调用
service 方法然后调用doGet,doPost,doPut,doDelete等方法
所以我们只需将相应的代码放入doGet()及doPost()方法中
doGet()方法
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
// Servlet 代码
}

建议阅读HttpServlet类的源码,就可以发现
service方法有两个,一个是保护的,一个公共的
公共的对外服务方法
实现服务的过程中,它会调用保护的方法
在保护的方法中,会识别请求的参数,按请求方式,调用不同的服务的具体方法,如doGet,doPost等。

doPost()方法
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
// Servlet 代码
}

5 destroy()方法

destroy() 方法只会被调用一次
在Servlet生命周期结束时被调用
destroy() 方法可以让您的Servlet 关闭数据库连接

停止后台线程
把 Cookie 列表或点击计数器写入到磁盘
并执行其他类似的清理活动
servlet对象被标记为垃圾回收
destroy方法定义如下所示:
public void destroy() {
// 终止化代码…
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值