servlet 生命周期(面试知识储备)

servlet生命周期:指的是servlet从创建到销毁的整个过程.

servlet通过init()方法进行初始化.

servlet通过service()方法来处理客户端的请求.

servlet通过调用destroy()方法终止(结束).

servlet生命周期方法详细介绍:

init()方法:

init()方法是初始化方法,servlet在调用的时候会启动该方法,

当用户访问servlet 对应的URL的时候  会创建servlet , 还可以指定servlet在服务器启动的时候被创建.

当用户调用一个servlet的时候,就会创建一个servlet实例,每一个用户请求都会产生一个新的线程,适当的时候交给doget或dopost方法, 

init()方法简单的创建或加载一些数据,这些数据将被用于servlet的整个生命周期.

service()方法:

service()方法是执行实际任务的主要方法.servlet容器(web服务器)调用service()方法来处理客户端(浏览器)的请求,并把格式化的响应写给客户端.

每次服务器接到一个新的servlet请求时,服务器会产生一个新的线程并调用服务.service()方法检查HTTP请求类型(get,post,put,delete等), 并在适当的时候调用doget,dopost,doput,dodelete等方法.

对service()方法您不用做任何动作,您只需要根据客户端的请求类型来重写doget()或dopost()即可.

doget()方法:

get请求来自于一个的URL正常请求,或者来自于一个未指定method的HTML表单,它由doget()方法来处理.


dopost()方法:

post请求来自于一个特别指定了method为post的HTML表单,它由dogpost()方法来处理.


destroy()方法:

destroy()方法只会被调用一次,在servlet生命周期结束时被调用,destroy()方法可以让您的servlet关闭数据库连接,停止后台线程,把cookie列表或点击计数器写入磁盘,并执行其他类似的清理活动.

在调用destroy()方法之后,servlet对象被标记为垃圾回收.

架构图:
下图显示了一个典型的 Servlet 生命周期方案。
第一个到达服务器的 HTTP 请求被委派到 Servlet 容器。
Servlet 容器在调用 service() 方法之前加载 Servlet。
然后 Servlet 容器处理由多个线程产生的多个请求,每个线程执行一个单一的 Servlet 实例的 service() 方法。



原文链接


猜你喜欢

转载自blog.csdn.net/weixin_39464761/article/details/75091681