简述servlet的生命周期

作为JAVA编程基础,servlet入门知识比不可少,本文叙述了servlet主要功能及servlet生命周期,供学习或者工作中参考。


1、主要功能

Servlet用于替代CGI,因此具有CGI类似的功能:

获取浏览器上传的用户数据,例如网页上的 HTML 表单(也可以是来自 applet 或自定义的 HTTP 客户端程序的表单)。获取浏览器上传的HTTP请求数据,包括 cookies、媒体类型和浏览器能理解的压缩格式等等。处理这些上行数据并生成结果,包括访问数据库,执行 RMI 或 CORBA 调用,调用 Web 服务。下发用户响应数据到浏览器,例如文本文件(HTML 、XML、JSON)、图片、流媒体等。下发 HTTP响应数据到浏览器,包括返回文档类型(例如 HTML),设置 cookies 和缓存参数,以及其他类似的任务。2、生命周期

Servlet 生命周期是从创建直到毁灭的整个过程,过程包括:

init () 方法:初始化,只调用一次。service() 方法:处理客户端的请求,每收到一次请求,服务器新产生一个线程来处理。destroy() 方法: 终止,只调用一次。垃圾回收:JVM 的垃圾回收器负责最后的垃圾回收。

生命周期示意图如下:

service() 方法可以调用的HTTP请求方法:

doGet() 方法

对应HTTP GET 请求,来自于一个 URL 的正常请求,或者来自于一个未指定 METHOD 的 HTML 表单:

publicvoiddoGet(HttpServletRequest request, HttpServletResponse response)throwsServletException, IOException { // Servlet 代码}
doPost() 方法

对应HTTP POST 请求,来自于一个特别指定了 METHOD 为 POST 的 HTML 表单:

publicvoiddoPost(HttpServletRequest request, HttpServletResponse response)throwsServletException, IOException { // Servlet 代码}

简述servlet的生命周期