一、什么是Servlet
Servlet是用Java编写的服务器端程序,由服务器端调用和执行的任何Java类。 Servlet是使用Java Servlet应用程序设计接口(API)及相关类和方法的Java程序。 浏览器端也就是客户端运行的Java程序叫做Applet,而服务器端运行的Java程序叫做Servlet。
二、Servlet的主要功能
Servlet的主要功能在于交互式地浏览和修改数据生成动态Web内容。过程为: 1、客户端发送请求至服务器端。 2、服务器将请求信息发送至Servlet。 3、Servlet生成响应内容并将其传给Server。 4、服务器将响应返回给客户端。
三、Servlet可以完成和CGI相同的功能
Servlet提供了Java应用程序的所有优势:——可移植、稳健、易开发。 1、Servlet主要优势在于:一个Servlet被客户端发送的第一个请求激活,然后继续运行于后台,等待以后请求。每个请求将生成一个线程,而不是一个完成的进程。多个客户能够在同一个进程中同时得到服务。一般,Servlet进程只是在Web Server卸载时被卸。 2、Servlet与CGI的比较: ◆Java Servlet技术要比传统的CGI技术效率更高。 传统的CGI对每一个HTTP请求都要产生一个新的进程;而对Java Servlet来说,在Java虚拟机上,每一个请求由一个Java线程thread响应,而不是一个操作系统进程。 ◆Java Servlet技术要比传统的CGI技术功能强大。 Java Servlet能够方便的处理HTML表单数据,也能够读取和设置HTTP头信息,并且能够处理Cookies、跟踪Sessions等其他大量功能。 ◆Servlet是模块化的。 每一个Servlet可以执行一个特定任务,并且可以将他们并在一起工作。 ◆Java Servlet之间能共享数据。 它能方便地实现管理从Request到Request的请求,简化Session和获取前一页面。 ◆Java Servlet技术要比传统的CGI技术调用时间要短得多。 CGI程序是作为单独过程运行的,通常调用时间较长;而内存中的Servlet可以非常迅速地加载。 ◆Java Servlet技术要比传统的CGI技术安全。 Java定义有完整的安全机制,包括SSI,CA认证、安全政策等规范。 ◆Java Servlet技术具有Java技术的所有优点。 Servlet是用Java编写的,Servlet具有Java技术的几乎所有的优点,如可移植性、稳健性以及易开发、易维护等特性。
四、Servlet与JSP之间的关系
1、JSP技术主要用来表现页面,而Servlet技术主要用来完成大量的逻辑处理。 2、JSP主要用来发送给前端的用户,而Servlet主要来响应用户的请求,完成请求的逻辑处理。 ◆在实际开发中,往往先把JSP页面开发出来,然后再将JSP代码转换成Servlet。 好处:充分利用JSP的页面表现能力,避免Servlet页面表现方面严重不足,大大缩短开发周期。
五、Servlet应用范围
Servlet应用范围: ◆处理HTTP请求。 ◆用于处理HTML表单。 ◆允许人们之间的合作。 ◆转送请求。 ◆允许定义激活代理。
六、Servlet的生命周期
Servlet的生命周期可以归纳为以下几点: ◆装载Servlet:一般动态执行(可以在启动时自动装载) ◆创建一个Servlet实例。 ◆调用Servlet的init()方法。 ◆一个客户端的请求到达服务器。 ◆创建一个请求对象。 ◆创建一个响应对象。 ◆激活Servlet的Service()方法,并传递请求和响应对象。 ◆Service()方法获得关于请求对象的信息、处理请求、访问其他资源、获得需要的信息。 ◆Service()方法使用响应对象的方法,将响应传回服务器,最终到达客户端。 ◆对于更多的客户端请求,服务器创建新的请求和响应对象,仍然激活此Servlet的Service()方法,将两个对象作为参数传递给它。 ◆当服务器不再需要Servlet或当服务器关闭时,服务器将会调用Servlet的destroy()方法。

|