二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()?