Java Servlet与Applet类似之处:java
◆它们不是独立的应用程序,没有main()方法。程序员
◆它们不是由用户或程序员调用,而是由另一个应用程序(容器)调用。数据库
◆它们都有一个生存周期,包含init()和destroy()方法。浏览器
Java Servlet与Applet不一样之处:性能优化
◆Applet具备很好的图形界面(AWT),与浏览器一块儿,在客户端运行。服务器
◆Servlet 则没有图形界面,运行在服务器端。并发
Java Servlet 与 CGI(Common Gateway Interface) 的比较:jsp
与传统的CGI和许多其余相似CGI的技术相比,Java Servlet具备更高的效率,更容易使用,功能更强大,具备更好的可移植性,更节省投资。在将来的技术发展过程当中,Servlet有可能完全取代CGI。ide
◆高效工具
在传统的CGI中,每一个请求都要启动一个新的进程,若是CGI程序自己的执行时间较短,启动进程所须要的开销极可能反而超过实际执行时间。而在Servlet中,每一个请求由一个轻量级的Java线程处理(而不是重量级的操做系统进程)http://open.189works.com/product/product.htm。
在传统CGI中,若是有N个并发的对同一CGI程序的请求,则该CGI程序的代码在内存中重复装载了N次;而对于Servlet,处理请求的是N个线程,只须要一份Servlet类代码。在性能优化方面,Servlet也比CGI有着更多的选择。
◆方便
Servlet提供了大量的实用工具例程,例如自动地解析和解码HTML表单数据、读取和设置HTTP头、处理Cookie、跟踪会话状态等。
◆功能强大
在Servlet中,许多使用传统CGI程序很难完成的任务均可以轻松地完成。例如,Servlet可以直接和Web服务器交互,而普通的CGI程序不能。Servlet还可以在各个程序之间共享数据,使得数据库链接池之类的功能很容易实现。
◆可移植性好
Servlet用Java编写,Servlet API具备完善的标准。所以,为IPlanet Enterprise Server写的Servlet无需任何实质上的改动便可移植到Apache、Microsoft IIS或者WebStar。几乎全部的主流服务器都直接或经过插件支持Servlet。
◆节省投资
Java Servlet与Applet不只有许多廉价甚至免费的Web服务器可供我的或小规模网站使用,并且对于现有的服务器,若是它不支持Servlet的话,要加上这部分功能也每每是免费的(或只须要极少的投资)。
Java Servlet 与 JSP(JavaServer Pages) 的比较:
JavaServer Pages(JSP)是一种实现普通静态HTML和动态HTML混合编码的技术,JSP并无增长任何本质上不能用Servlet实现的功能。可是,在 JSP中编写静态HTML更加方便,没必要再用println语句来输出每一行HTML代码。更重要的是,借助内容和外观的分离,页面制做中不一样性质的任务能够方便地分开:好比,由页面设计者进行HTML设计,同时留出供Servlet程序员插入动态内容的空间。
Java Servlet API 2.2 简介
Java Servlet API 2.2 的类和接口组成两个Java 包,即:javax.servlet 和 javax.servlet.httphttp://open.189works.com/product/product.htm(还包括javax.servlet.jsp包,不在本篇文章讨论范围以内)。
javax.servlet 包提供了控制 Servlet 生命周期所必需的 Servlet 接口,是编写 Servlet 时必需要实现的。
javax.servlet.http 包提供了从Servlet 接口派生出的专门用于处理 HTTP 请求的抽象类和通常的工具类。全部的Servlet 对象都要实现Servlet 接口,大多数状况下是做为已经实现了Servlet 接口的javax.servlet.GenericServlet 和 javax.servlet.http.HttpServlet 这两个抽象类的子类来间接实现Servlet 接口。