CGI:Common Gateway Interface
1.定义
CGI代表Common Gateway Interface(通用网关界面),是运行在服务器上的程序,是HTTP服务器与其它机器上的程序进行“交谈”的一种工具。
绝大多数的CGI程序被用来解释处理来自表单的输入信息,并在服务器产生相应的处理,或将相应的信息反馈给浏览器。CGI程序使网页具有交互功能。
3.运行环境:
CGI程序可以运行在UNIX,WINDOWS操作系统上,同时它也适用于各种类型机器。既然CGI是一种程序,自然需要用编程语言来写。你可以用任何一种你熟悉的高级语言, C,C++,C shell和VB。值得特别指出的,有一种叫Perl的语言。其前身是属于Unix专用的高 级语言,其具有强大的字符串处理能力而成为现在写CGI,特别是表单类程序的首选。
⑴通过Internet把用户请求送到服务器。
⑵服务器接收用户请求并交给CGI程序处理。
⑶CGI程序把处理结果传送给服务器。
⑷服务器把结果送回到用户。
3.于是cgi程序在服务器上按照预定的方法进行处理。在本例中就是把用户提交的信息存入指定的文件中
4.然后cgi程序给客户端发送一个信息,表示请求的任务已经结束。此时用户在浏览器里将看到“留言结束”的字样。整个过程结束。
最后要提醒各位,因为CGI是Server和Client的接口,所以对于不同的Server,CGI程序的移值是一个很复杂的问题。一般对于不同的Server,决没有两个可以互相通用的CGI。实际上这就是CGI程序最复杂的地方。
Servlet:
1.定义和功能
2.Servlet处理步骤:
(1)客户端发送请求至服务器端;
(2)服务器将请求信息发送至Servlet;
(3)Servlet生成响应内容并将其传给Server。响应内容动态生成,通常取决于客户端的请求;
(4)服务器将响应返回给客户端。
参考:
http://www.cublog.cn/u/29/showart_362010.html
http://zhidao.baidu.com/question/6986443
JSP:Java Server Pages
1.定义和功能
JSP可用一种简单易懂的等式表示为:HTML+Java=JSP。 (JSP属于前台)
JSP(JavaServer Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。在传统的网页HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP标记(tag),就构成了JSP网页(*.jsp)。
Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给客户。程序片段可以操作数据库、重新定向网页以及发送email 等等,这就是建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果。
2.JSP和Servlet关系
JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java Servlet 是JSP的技术基础,实际上每一个jsp页面在执行的时候首先要被转化成一个servlet然后才执行,大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。
JSP与Java Servlet一样,是在服务器端执行的,通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
Jsp就是内嵌java代码的html,servlet就是内嵌html的java程序,jsp最后执行也是被编译成servlet来执行,本质上一样。如果说不同,那就是jsp重在页面控制,servlet重在业务逻辑控制。JSP是Servlet技术的扩展,本质上是servlet的简易方式。更强调应用的外表表达。JSP编译后是“类Servlet”。也有人说:Jsp就是Servlet。
Jsp(JavaServer Page)是在普通Html中嵌入了Java代码的一个脚本,在这一点上,它与其它的脚本语言(如Php)一样,但它与其它语言不同的是:其它脚本语言由服务器直接解释这个脚本,而Jsp则由Jsp容器(如Tomcat)首先将其转化为Servlet,然后再调用Javac将Servlet编译为Class文件。最终,服务器解释的是Class文件。那么什么是Servlet呢?Servlet其实是一个特殊的Java类,Servlet类一般从HttpServlet类继承而来,在这个类中至少要实现doGet或者doPost函数,在这两个函数中处理来自客户的请求,然后将结果返回。Servlet和Jsp是Sun公司J2EE架构中重要的部分。由于基于Java语言,因此其可以方便的调用功能强大的Java API(如JDBC)。
参考:
http://baike.baidu.com/view/3387.htm
http://topic.csdn.net/t/20060913/11/5018584.html
Tomcat和Apache概述
Tomcat functions as a servlet container developed under the Jakarta Project at the Apache Software Foundation. Tomcat implements the servlet and the JavaServer Pages (JSP) specifications from Sun Microsystems. It's considered to be an application server.
Tomcat是一个免费的开源的Serlvet容器,Tomcat服务器是在SUN公司的JSWDK(javaServer Web DevelopmentKit,是SUN公司推出的小型Servlet/JSP调试工具)的基础上发展起来的一个优秀的Servlet/JSP容器,它是Apache-Jakarta软件组织的一个子项目。它不但支持运行Servlet和JSP,而且还具备了作为商业java Web应用容器的特征。)
Tomcat不仅仅是一个Servlet容器,它也具有传统的Web服务器的功能:处理Html页面。但是与Apache相比,它的处理静态Html的能力就不如Apache.我们可以将Tomcat和Apache集成到一块,让Apache处理静态Html,而Tomcat处理Jsp和Servlet.这种集成只需要修改一下Apache和Tomcat的配置文件即可。
不过Tomcat作为一个Web服务器,本身具备了基本的Web服务功能,在SUN的力推下,将来或许越来越强壮到不需要借助Apache优势的地步。
Apache是一个强大的Web服务器
APACHE是一个web服务器环境程序,启用他可以作为web服务器使用,不过只支持静态网页,如(asp,php,cgi,jsp)等动态网页的就不行,没有JSP/Servlet的解析能力。在处理静态页面、处理大量网络客户请求、支持服务的种类以及可配置方面都有优势,高速并且强壮。
整合Apache和Tomcat可以看作是用Tomcat做Apache的jsp/servlet解析插件,将两者优势结合起来
参考:
http://java.chinaitlab.com/Tomcat/723882.html