黑马程序员技术交流社区

标题: Servlet的生命周期,Servlet和CGI有什么区别 [打印本页]

作者: UNFC    时间: 2012-4-26 13:25
标题: Servlet的生命周期,Servlet和CGI有什么区别
如题 请解释下Servlet的生命周期和Servlet和CGI有什么区别
作者: 周海诚    时间: 2012-4-29 14:33
概括来讲,Servlet可以完成和CGI相同的功能。
1.CGI程序来实现数据在Web上的传输,使用的是如Perl这样的语言编写的,
它对于客户端作出的每个请求,必须创建CGI程序的一个新实例,
这样占用大量的内存资源。由此才引入了Servlet技术。
2.Servlet是一个用java编写的应用程序,在服务器上运行,
处理请求信息并将其发送到客户端。对于客户端的请求,
只需要创建Servlet的实例一次,因此节省了大量的内存资源。
Servlet在初始化后就保留在内存中,因此每次作出请求时无需加载。
3.CGI应用开发比较困难,因为它要求程序员有处理参数传递的知识,
这不是一种通用的技能。CGI不可移植,为某一特定平台编写的CGI应用只能运行于这一环境中。
每一个CGI应用存在于一个由客户端请求激活的进程中,并且在请求被服务后被卸载。
这种模式将引起很高的内存、CPU开销,而且在同一进程中不能服务多个客户。
4.Servlet提供了Java应用程序的所有优势——可移植、稳健、易开发。
使用Servlet Tag技术,Servlet能够生成嵌于静态HTML页面中的动态内容。
5.Servlet对CGI的最主要优势在于一个Servlet被客户端发送的第一个请求激活,
然后它将继续运行于后台,等待以后的请求。每个请求将生成一个新的线程,
而不是一个完整的进程。多个客户能够在同一个进程中同时得到服务。一般来说,
Servlet进程只是在Web Server卸载时被卸载。
作者: 陈忠    时间: 2012-4-29 17:00
Servlet是一个用java编写的应用程序,在服务器上运行,处理请求信息并将其发送到客户端。对于客户端的请求,只需要创建Servlet的实例一次,因此节省了大量的内存资源。Servlet在初始化后就保留在内存中,因此每次作出请求时无需加载。

要彻底熟知servlet的生命周期,上句话红字部分是重中之重。其他的什么初始化init()方法,请求服务器端的service调用doget()  or dopost()方法这些,你可以写个自己的小程序慢慢结合网上的一些文档分析一下就比较好理解了。






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2