Servlet的生命周期

时间:2021-08-05 09:34:46

Servlet是服务器小应用程序(Java程序),用来完成B/S架构下,客户端请求的响应处理,根据情况动态输出html的格式,其平*立,性能优良,以线程方式运行。

访问一个Servlet的时候默认调用service()方法,service()方法根据请求的方式调用doPost()和doGet()方法。

Servlet的生命周期:
  1.加载:当启动Servlet容器时会自动加载相关的类(利用ClassLoader加载)。
  2.实例化:第一次请求的时候被实例化new出一个Servlet对象,只实例化一遍。(只有一个对象:在为客户端服务过程中,在服务器端只有一个Servlet对象。)
  3.初始化:实例化后先调用init()初始化方法,只初始化一遍。
  4.处理请求:每个请求,调用一遍service()->受保护的service()->doGet()/doPost()。(不要在Servlet中设计成员变量,它通过多线程方式运行其service()方法,一个实例可以服务于多个请求,并且其实例一般不会销毁。客户端发送请求到来时,Servlet会查询容器中是否存在此Servlet的实例,如果不存在,就创建一个实例.如果存在,就取出来.)
  5.退出服务:Web Application卸载退出前或者重新启动时调用destroy()方法(或者类重新定义)。


重点是--只有一个对象(在非分布的情况下,一个服务器只有一个实例)。