Servlet的定义
定义:Servlet是Java语言提供的一种组件,按照JavaEE规范定义。是运行在Servlet容器中的Java类,它能处理Web客户端的HTTP请求,并产生HTTP响应。
作用:处理客户端的请求并将其结果返回到客户端。
一般流程:客户端–>Web容器(Tomcat,jetty)–>通过Servlet接口–>Servlet–>服务端
Servlet生命周期
Servlet生命周期是指Servlet实例从创建到响应客户请求,直至销毁的过程。Servlet程序本身不直接在Java虚拟机上运行,由Servlet容器负责管理整个生命周期。
1)、Servlet初始化(init()方法):服务器启动时,不执行任何工作。在浏览器输入网址,第一次访问时,执行init()方法进行初始化。如果初始化成功,Servlet在Web容器中处于服务可用状态;如果初始化失败,Servlet容器会销毁该输入。
2)、 请求处理:在第二次输入网址时,执行方法(doGet()/doPost/service())。在Servlet生命周期中,service方法可能被多次调用。当多个客户同时访问某个Servlet的service()方法时,服务器会为每个请求创建一个线程,并行处理多个请求,减少请求处理的等待时间,提高服务器的响应速度。
3)、服务终止:服务器正常停止时,执行一次destroy()销毁方法。在调用destroy()方法之前,必须让当前正在执行的service()方法的所有线程完成执行,或超过了服务器定义的时间限制。 执行完成后,释放Servlet以便被垃圾回收。
在特定生命周期编写业务代码:
1、init()方法用于执行初始化操作,如读写配置文件。
2、服务方法用于编写需要多次执行的功能代码。
3、destroy()用于资源回收操作。