首页 > 试题广场 >

解释下Servlet的生命周期。

[问答题]
解释下Servlet的生命周期。
servlet 有良好的生命周期的定义,包括加载和实例化、初始化、处理请求以及服务结束。 这个生命周期由 javax.servlet.Servlet接口的init,service和destroy方法表达
发表于 2019-05-05 15:40:31 回复(0)
更多回答
Servlet程序是由WEB服务器调用,web服务器收到客户端的Servlet访问请求后:
①Web服务器首先检查是否已经装载并创建了该Servlet的实例对象。如果是,则直接执行第④步,否则,执行第②步。
②装载并创建该Servlet的一个实例对象。 
③调用Servlet实例对象的init()方法。
④创建一个用于封装HTTP请求消息的HttpServletRequest对象和一个代表HTTP响应消息的HttpServletResponse对象,然后调用Servlet的service()方法并将请求和响应对象作为参数传递进去。
⑤WEB应用程序被停止或重新启动之前,Servlet引擎将卸载Servlet,并在卸载之前调用Servlet的destroy()方法。
发表于 2016-01-24 22:47:36 回复(0)
1.加载实例化 2.初始化 3.处理请求 4.销毁
发表于 2016-08-06 20:38:03 回复(0)
①用户请求
②服务器接收请求
③创建请求响应对象
④判断servlet对象是否存在,
(1)如果存在则调用servlet对象的service方法doget()||dopost()
(1)如果不存在则加载Servlet类,创建Servlet对象,调用init初始化,到第一步
⑤响应
在WEB应用被卸载或服务器关闭时,系统卸载servlet,调用destory方法释放资源
注:在servlet的生命周期汇总,同一个servlet对象可以为多个客户端服务,多个客户端之间的区别在于服务器会为每个客户端创建不同的请求对象,和响应对象,而执行的方法是相同的,加载servlet类,创建对象和调用init()方法都只有一次、

发表于 2016-05-14 23:23:40 回复(0)
init->service->destroy
编辑于 2019-03-25 15:23:27 回复(0)
加载类=>实例化(为对象分配空间)=>初始化(为对象的属性赋值)=>请求处理(服务阶段)=>销毁
  • 过程详情
服务器启动时(web.xml中配置load-on-startup=1,默认为0)或者第一次请求该servlet时,就会初始化一个Servlet对象,也就是会执行初始化方法init(ServletConfig conf),该servlet对象去处理所有客户端请求,在service(ServletRequest req,ServletResponse res)方法中执行,最后服务器关闭时,才会销毁这个servlet对象,执行destroy()方法。
编辑于 2021-03-30 14:57:33 回复(0)
默认第一次访问的时候,服务器创建servlet,并调用init实现初始化操作.并调用一次service方法
每当请求来的时候,服务器创建一个线程,调用service方法执行自己的业务逻辑
当serlvet被移除的时候服务器正常关闭的时候,服务器调用servlet的destroy方法实现销毁操作.
发表于 2019-07-11 12:34:07 回复(0)
1、检查 2、加载 3、初始化 4、服务(request,response) 5、销毁
发表于 2021-07-16 11:04:56 回复(0)

收到客户端请求,web端接收请求,web端检查是否创建了sevlet对象,如果创建了,就会将客户端的请求封装到request对象中,并且创建response对象,如果没有创建,则调用servlet的init方法,创建sevlet对象,最后返回给客户端,完成后destory销毁

编辑于 2019-08-16 16:15:47 回复(0)
当有多个线程并发访问同一个Servlet,服务器只会创建一个Servlet的实例,第一次创建的时候 会调用init方法,接着其他的并发访问,系统会开几个线程提供该Servlet的service方法,在结束调用后,最终会调用destroy方法。
编辑于 2017-02-26 19:53:41 回复(0)
servlet生命周期分为4部分,分别是加载实例化、初始化init()、服务service、销毁
发表于 2021-01-26 15:36:53 回复(0)
new:创建 Init:初始化 block:锁 waiting:调用wait方法 time waiting:调用sleep方法 终止
发表于 2020-11-16 11:04:58 回复(0)
当我们访问servlet服务时,先会调用init方法初始化一个httprequest和httpreponse对象 ,访问 一次把两个对偶作为参数传入到service方法中,关闭服务时,执行destory方法
编辑于 2019-11-26 00:37:32 回复(0)
servlet 有良好的生命周期的定义,包括加载和实例化、初始化、处理请求以及服务结束。 这个生命周期由 javax.servlet.Servlet接口的init,service和destroy方法表达
发表于 2019-05-03 21:32:21 回复(0)
对每一个客户端的请求,Servlet引擎载入Servlet,调用它的init()方法,完成Servlet的初始化。然后,Servlet对象通过为每一个请求单独调用service()方法来处理所有随后来自客户端的请求,最后,调用Servlet(译者注:这里应该是Servlet而不是server)的destroy()方法把Servlet删除掉。
发表于 2019-05-02 11:47:03 回复(0)
初始化,实例化,服务,销毁
发表于 2019-04-28 21:32:35 回复(0)
servlet 有良好的生命周期的定义,包括加载和实例化、初始化、处理请求以及服务结束。 这个生命周期由 javax.servlet.Servlet接口的init,service和destroy方法表达。
发表于 2019-04-27 17:08:14 回复(0)
web容器加载servlet,生命周期开始。通过调用servlet的init()方法进行servlet的初始化。通过调用service()方法实现,根据请求的不同;调用不同的do***()方法。 结束服务,web容器调用servlet的destroy()方法。
发表于 2019-04-26 23:57:36 回复(0)
对于客户端的请求,通过servlet引擎载入servlet,调用servlet的init()方法,完成初始化;然后,servlet对象为每一个请求单独调用service()方法处理来自客户端的请求,最后调用servlet的destroy()方法把servlet删除掉。
发表于 2018-04-26 16:10:26 回复(0)
①用户请求 ②服务器接收请求 ③创建请求响应对象 ④判断servlet对象是否存在, (1)如果存在则调用servlet对象的service方法doget()||dopost() (1)如果不存在则加载Servlet类,创建Servlet对象,调用init初始化,到第一步 ⑤响应 在WEB应用被卸载或服务器关闭时,系统卸载servlet,调用destory方法释放资源 注:在servlet的生命周期汇总,同一个servlet对象可以为多个客户端服务,多个客户端之间的区别在于服务器会为每个客户端创建不同的请求对象,和响应对象,而执行的方法是相同的,加载servlet类,创建对象和调用init()方法都只有一次、
发表于 2016-11-25 12:20:22 回复(0)