servlet的生命周期

1. Servlet的初始化

    当客户端发送请求过来时,Servlet容器会查找内存中是否有该Servlet的容器,如果存在,则直接读取实例响应请求;

  如果不存在,就创建一个该servlet的实例

  分析:servlet实例在Servlet的容器是单例存在的,所以建议在编写servlet代码时不要添加成员变量,如果实在要添加那最好在该项目下只对该成员变量进行读的操作

  否则,造成可怕的事情~(自己想象)  

  init()方法:1.默认情况下,是客户第一访问该servlet的时候,创建servlet的实例,调用 且在servlet的一生中只执行一次。

        2. 服务器启动时, 就创建了servlet实例且执行init()方法 在web.xml文件中,找到该servlet的配置信息,并在<servlet>标签中添加<load-on-startup>5</load-on-startup> (整数越小,加载的优先级越高,一般不设置比2小的数字)

2. Servlet的service()方法

    当一个客户请求Servlet的时候,实际工作处理全部由service()方法完成,service方法处理客户客户端的请求,并生成格式化数据返回给客户端。

  每一次请求服务器都会开启一个新的线程并执行一个service方法,service方法根据客户端的请求类型,调用doGet()或doPost()方法

3. Servlet的destory()方法

    在Web应用关闭或者服务器正常关闭的时候调用,且在servlet的一生中只执行一次。在Servlet中可以做一些资源释放的操作;执行destroy()方法之后,servlet对象,

    会等待jvm虚拟机的垃圾回收机制择时回收。

摘自:    https://blog.csdn.net/u013054715/article/details/77888617

    https://blog.csdn.net/hu1010037197/article/details/80215093

原文地址:https://www.cnblogs.com/Joe-666/p/9824712.html