一、CGI
1. 定义:
CGI(Common Gateway Interface 公共网关接口)是HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。
2. 功能:
绝大多数的CGI程序被用来解释处理杰自表单的输入信息,并在服 务器产生相应的处理,或将相应的信息反馈给浏览器。CGI程序使 网页具有交互功能。
3. 运行环境:
CGI程序在UNIX操作系统上CERN或NCSA格式的服务器上运行。 在其它操作系统(如:windows NT及windows95等)的服务器上 也广泛地使用CGI程序,同时它也适用于各种类型机器。
4. CGI处理步骤:
⑴通过Internet把用户请求送到服务器。
⑵服务器接收用户请求并交给CGI程序处理。
⑶CGI程序把处理结果传送给服务器。
⑷服务器把结果送回到用户。
二、Servlet
Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。
它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。
Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。
工作模式:
Servlet被服务器实例化后,容器运行其init方法。
客户端发送请求到达服务器时运行其service方法,
service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等。
服务器将响应返回客户端。
三、Servlet与CGI的区别
Servlet与CGI (Common Gateway Interface 公共网关接口)的比较:
与传统的CGI和许多其他类似CGI的技术相比,Servlet具有更高的效率,更容易使用,功能更强大,具有更好的可移植性,更节省投资。在未来的技术发展过程中,Servlet有可能彻底取代CGI。
在传统的CGI中,每个请求都要启动一个新的进程,如果CGI程序本身的执行时间较短,启动进程所需要的开销很可能反而超过实际执行时间。而在Servlet中,每个请求由一个轻量级的Java线程处理(而不是重量级的操作系统进程)。
在传统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。
分享到:
相关推荐
学习javaweb写的一个小项目(学生信息管理系统),用到知识点:Servlet+jsp+MySQL
第01章:Servlet与JSP核心技术课程--1、JBuilder集成WebLogic-JBuilder集成WebLogic1.1.rmvb 第01章:Servlet与JSP核心技术课程--1、JBuilder集成WebLogic-JBuilder集成WebLogic1.2.rmvb 第01章:Servlet与JSP核心...
本章内容 知道什么是Servlet,理解Servlet的作用 理解Servlet的生命周期 会通过继承HTTPServlet类的方式创建自己的Servlet类 知道如何访问servlet 理解web.xml中关于Servlet的配置 知道如何在servlet中取得客户端的...
人工智能-项目实践-信息化管理-信息管理系统设计与开发
JAVAWEB-08:Servlet基础&java web之request/respone
服务器搭建:servlet+dao+javabean+jsp实现简单的用户登录
语言程序设计资料:Servlet基础.ppt
javax.servlet-api-3.1.0.jar,处理找不到servlet JAR的问题
项目名称:Cookie版人员管理系统。 使用技术:servlet+jsp+mysql+Cookie技术
implementation("javax.servlet:javax.servlet-api:***") ``` # 含有的 Java package(包): ``` javax.servlet javax.servlet.annotation javax.servlet.descriptor javax.servlet.http ``` # 含有的 Java ...
Jetty 是一个开源的servlet容器,它为基于Java的web容器,例如JSP和servlet提供运行环境。Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布。开发人员可以将Jetty容器实例化成一个对象,可以迅速为一些独立...
更多Filter信息请参考:《Servlet3.1规范(最终版)》第6章发中都是继承HttpServlet,其继承实现了Servlet接的GenericServ
implementation("javax.servlet:javax.servlet-api:***") ``` # 含有的 Java package(包): ``` javax.servlet javax.servlet.annotation javax.servlet.descriptor javax.servlet.http ``` # 含有的 Java ...
JSP版本的KindEidtor在线编辑器第二季:Servlet+Struts2集成版 JAR包+JQUERY EASYUI结合应用示例 详细介绍与预览见:http://www.iteye.com/topic/1116627
1 Oracle:索引 5分 2 Oracle:plsql,游标 6分 3 Oracle:sql命令 8分 4 Oracle:数据库创建,授权 6分 5 Oracle:plsql块 5分 6 Oracle:过程与函数 6分 7 Oracle:plsql块 6分 ...26 Servlet:simpletag 6分
对Servlet基础知识进行总结,适合新手入门用,里面详细的介绍了Servlet运行原理以及如何创建等
NULL 博文链接:https://1601844782.iteye.com/blog/2273999
Servlet:用于验证数据、实例化JavaBean、调用Dao连接数据库、控制页面的跳转 Servlet过滤器(filter):能够在一个Request到达servlet之前预处理request,也可以在离开servlet时处理response Servlet监听器:给web中...