servlet生命周期

我们一般都了解servlet的大致生命周期为:init->service->get\post\...->destroy,如下图:

原文:https://my.oschina.net/yangjianzhou/blog/1934286

-------------------------------------------------------------------------------------------------------------------------------------------------------------

Servlet生命周期简述

(1)加载和实例化

当Servlet容器启动或客户端发送一个请求时,Servlet容器会查找内存中是否存在该Servlet实例,若存在,则直接读取该实例响应请求;如果不存在,就创建一个Servlet实例。

(2) 初始化

实例化后,Servlet容器将调用Servlet的init()方法进行初始化(一些准备工作或资源预加载工作)。

(3)服务

初始化后,Servlet处于能响应请求的就绪状态。当接收到客户端请求时,调用service()的方法处理客户端请求,HttpServlet的service()方法会根据不同的请求 转调不同的doXxx()方法。

(4)销毁

当Servlet容器关闭时,Servlet实例也随时销毁。其间,Servlet容器会调用Servlet 的destroy()方法去判断该Servlet是否应当被释放(或回收资源)。


用户第一次访问Servlet的时候,服务器会创建一个Servlet的实例,那么Servlet中init方法就会执行.任何一次请求服务器都会创建一个新的线程访问Servlet中的service的方法.在service方法内部根据请求的方式的不同调用doXXX的方法.(get请求调用doGet,post请求调用doPost).当Servlet中服务器中移除掉,或者关闭服务器,Servlet的实例就会被销毁,那么destroy方法就会执行.

原文:https://www.cnblogs.com/kingofjava/p/10761669.html

-------------------------------------------------------------------------------------------------------------------------------------------------------------

Servlet_生命周期:首先加载servlet的class,实例化servlet,然后初始化servlet调用init()的方法,接着调用服务的service的方法处理doGet和doPost方法,最后是我的还有容器关闭时候调用destroy 销毁方法。

1.被创建:执行init方法,只执行一次

  1.1Servlet什么时候被创建?

  --默认情况下,第一次被访问时,Servlet被创建,然后执行init方法;

  --可以配置执行Servlet的创建时机;

2.提供服务:执行service方法,执行多次

3.被销毁:当Servlet服务器正常关闭时,执行destroy方法,只执行一次

复制代码

 1 //servlet生命周期,的三个方法,1.被创建,执行且只执行一次init方法,2.提供服务,执行service方法,执行多次 3.被销毁,当Servlet服务器正常关闭时,执行destroy方法,只执行一次。
 2     
 3     @Override
 4     public void init() throws ServletException {
 5         // TODO Auto-generated method stub
 6         super.init();
 7     }
 8     
 9     @Override
10     protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
11         // TODO Auto-generated method stub
12         super.service(req, resp);
13     }
14     
15     @Override
16     public void destroy() {
17         // TODO Auto-generated method stub
18         super.destroy();
19     }

复制代码

原文:https://www.cnblogs.com/abcdjava/p/11060945.html

-------------------------------------------------------------------------------------------------------------------------------------------------------------

1、加载:在下列时刻加载 Servlet:
(1)如果已配置自动加载选项,则在启动服务器时自动加载(web.xml中设置<load-on-start>)。
(2)在服务器启动后,客户机首次向Servlet发出请求时。
(3)重新加载Servlet时。(只执行一次)

2、实例化:加载Servlet后,服务器创建一个Servlet实例。(只执行一次)
3、初始化:调用Servlet的init()方法。在初始化阶段,Servlet 初始化参数被传递给Servlet配置对象ServletConfig。(只执行一次)
4、请求处理:对于到达服务器的客户机请求,服务器创建针对此次请求的一个“请求”对象和一个“响应”对象。服务器调用Servlet的service()方法,该方法用于传递“请求”和“响应”对象。service()方法从“请求”对象获得请求信息、处理该请求并用“响应”对象的方法以将响应传回客户机。在service方法内部根据请求的方式的不同调用doXXX的方法。service()方法可以调用其它方法来处理请求,例如doGet()、doPost()或其它的方法。(每次请求都执行该步骤)
5、销毁:当服务器不再需要 Servlet, 或重新装入 Servlet 的新实例时,服务器会调用 Servlet 的 destroy() 方法。(只执行一次)

原文:https://zq.zhaopin.com/zpdOutputQuestionForXZH/5192938

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值