前言
简单了解了Servlet是用来干什么后,我开始了其生命周期的学习,我的学习心得可能有不足之处,还请大佬多多指正。
一、生命周期定义
Servlet生命周期可被定义为从创建直到毁灭的整个过程,即加载类–>实例化(为对象分配空间)–>初始化(init())–>请求处理(service())–>销毁(destroy())。
二、生命周期方法
由于加载阶段无法观察,但是初始化、服务、销毁阶段是可以观察到的。所以接下来对这三个阶段的方法展开描述。
1.Init()
在一个Servlet的生命周期中,init方法只会被执行一次,之后无论用户执行多少次请求,都不会在调用该方法。
其定义如下:
public void init() throws ServletException {
// 初始化
}
init()方法通常负责简单的创建或者加载一些数据,而这些数据将用于该Servlet的整个生命周期中。
2.service()
当一个客户发出请求时,实际处理工作全部由service方法来完成,它用来处理客户端的请求,并生成格式化的数据返回给客户端。
每一次请求服务器都会开启一个新的线程并执行一次service方法,其根据客户端的请求类型,调用doGet、doPost等方法。
其定义如下:
public void service(ServletRequest request, ServletResponse response)
throws ServletException, IOException{
}
注:service() 方法由容器调用,所以我们不用对 其做任何动作,我们只需根据来自客户端的请求类型来重写doGet() 方法或doPost() 方法即可。
3.doGet()
doGet() 方法用来处理get请求,get请求来自于一个url的正常请求,或者来自于一个未指定method的html表单。
其定义如下:
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException,