一、什么是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()方法。