二Servlet-生命周期

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二Servlet-生命周期相关的知识,希望对你有一定的参考价值。

Servlet生命周期

Servlet生命周期可被定义从创建到销毁的整个过程。

(1)Servlet调用init()方法进行初始化

(2)Servlet调用service()方法来处理客户端请求

(3)Servlet通过destroy()方法终止

(4)最后,Servlet由JVM的垃圾回收器进行回收

init()方法

init()方法被设计成只调用一次。只在第一次创建Servlet时被调用,后续每次用户请求时不再调用。

Servlet创建于用户第一次调用对于该Servlet的URL时,但是也可以指定Servlet在服务器第一次启动时被加载。

当用户调用一次Servlet时,就创建一个Servlet实例,每一个用户请求都会产生一个新线程,适当的时候移交给doGet()或doPost()方法。init()方法简单地创建或加载一些数据,这些数据将被用于Servlet的整个生命周期。

init()方法如下:

  public void init() throws ServletException{
    //初始化代码...

  }

service()方法

service()方法是执行实际任务的主要方法。Servlet容器(Web服务器)调用service()方法来处理客户端请求,并把格式化的响应返回给客户端。

服务器每收到一个Servlet请求时,就产生一个新的线程并调用服务。service()方法检查HTTP请求类型(GET/POST/PUT/DELETE等),并调用doGet()等方法。

下面是该方法:

  public void service(ServletRequest request,ServletResponse response)throws ServletException,IOException{

    //代码

  }

doGet()方法

GET请求来自于一个url的正常请求,或者来自于一个未指定Method的html表单,它由doGet()方法处理。

  public void doGet()throws ServletException,IOException{

    //代码

  }

doPost()方法

POST请求来自于一个指定了Method为HTML表单,它由doPost()方法chuli。

  public  void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{

    //代码

   }

destroy()方法

destroy()方法只会被调用一次,在Servlet生命周期结束时被调用。destroy()方法可以让Servlet关闭数据库连接、停止后台线程、把Cookie列表或点击计数器写入磁盘。

调用完destroy()后,servlet对象被标记为垃圾回收。

  public  void destroy(){

  //终止代码

  }

 

以上是关于二Servlet-生命周期的主要内容,如果未能解决你的问题,请参考以下文章

servlet的生命周期,啥情况下调用doGet()和doPost()?

servlet生命周期与工作原理

servlet执行流程和生命周期

javaweb学习总结二十一(servlet开发入门servlet生命周期以及调用过程)

servlet入门学习之生命周期

javaWeb中servlet开发——Servlet生命周期