-
1 知识链接
-
2 任务实现
-
3 同步实训
在JSP技术出现之前,如果想动态生成HTML页面,那么就只有在服务器端运行Java程序,并生成HTML格式的内容。运行在服务器端的Java程序就是Servlet。
【知识链接】
微课:Servlet概述
1.Servlet简介
Servlet是一个符合特定规范的Java程序,在服务器端运行,处理客户端请求并做出响应,通常称为“Java服务器小程序”,它与协议和平台无关。
回顾一下JSP在服务器上的执行过程,在图7-1中的翻译阶段,即服务器对JSP文件进行翻译,将编写好的JSP文件通过JSP引擎转换成可识别的Java源代码,这里的Java源代码其实就是Servlet。

图7-1 JSP在服务器上的执行过程
Servlet拥有与生俱来的跨平台特性,使得Servlet程序完全可以在不同的Web服务器上执行,Servlet与普通的Java程序一样,是被编译成字节码后在Servlet容器管理的Java虚拟机中运行,被客户端发来的请求激活,在虚拟机中装载一个Servlet就能够处理多个新的请求,每个新请求可以使用内存中的同一个Servlet副本,执行效率高,很适合用来开发Web服务器应用程序。
Servlet的优点总的来说可以分为以下几个方面:
(1)可移植性好。Servlet是用Java语言编写的,具有完善的Servlet API标准,企业编写的Servlet程序可以轻松地移植到其他服务器中。
(2)安全高效。Servlet使用Java的安全框架,Servlet容器也保证Servlet的安全,Servlet载入内存并使用多线程,效率很高,加快响应速度。
(3)模块化。每个Servlet可以完成一定的任务,不同的Servlet可以互相交流数据。
(4)可扩展性。Servlet接口设计非常精简,便于扩展。
(5)功能强大。Servlet除了支持HTTP访问,还支持图像处理、数据压缩、多线程、JDBC、RMI、序列化等功能。
2.Servlet的生命周期
当服务器调用Servlet类时,Servlet对象被创建。从服务器创建Servlet对象到该对象被消灭这段时间称为Servlet的生命周期。
Servlet的生命周期分为装载Servlet、处理客户请求和结束Servlet三个阶段,分别由javax.servlet.Servlet接口的init()方法、service()方法和destroy()方法来实现,如图7-2所示。

图7-2 Servlet的生命周期
(1)装载Servlet。所谓装载Servlet,实际上是用Web服务器创建一个Servlet对象,调用这个对象的init()方法完成必要的初始化工作。在Servlet对象生命周期内,本方法只调用一次。
(2)处理客户请求。当客户请求到来时,Servlet引擎将请求对象传递给service()方法,同时创建一个响应对象,service()方法获得请求/响应对象后进行请求处理(调用被覆盖的doXXX()方法进行逻辑处理),然后将处理的结果以响应对象的方式返回给客户端。在Servlet对象周期内,该方法可能被多次请求,而被多次调用。
(3)结束Servlet。当Web服务器要卸载Servlet或重新装入Servlet时,服务器会调用Servlet的destory()方法,将Servlet从内存中删除,否则它一直为客户服务。在Servlet对象周期内,该方法只调用一次。

