本文目录一览:
1、什么是ASP,PHP,CGI,JSP?
2、CGI 、ASP、JSP有什么区别
3、asp jsp cgi php之间的区别
什么是ASP,PHP,CGI,JSP?
与HTML相比,ASP网页具有6大特点。
ASP是Active Server Page的缩写,意为“活动服务器网页”。ASP是微软公司开发的代替CGI脚本程序的一种应用,它可以与数据库和其它程序进行交互,是一种简单、方便的编程工具。ASP的网页文件的格式是.asp,现在常用于各种动态网站中。 ASP是一种服务器端脚本编写环境,可以用来创建和运行动态网页或web应用程序。ASP网页可以包含HTML标记、普通文本、脚本命令以及COM组件等。利用ASP可以向网页中添加交互式内容(如在线表单),也可以创建使用HTML网页作为用户界面的web应用程序。
CGI(Common Gateway Interface)是一种共用网关接口,它可以称之为一种机制.因此您可以使用不同的程序编写适合的CGI程序,这些程序语言包括Visual Basic、Delphi或C/C++等,您将已经写好的程序放在WEB服务器的计算机上运行,再将其运行结果通过WEB服务器传输到客户端的浏览器上。事实上,这样的编制方式比较困难而且效率低下,因为你每一次修改程序都必须重新将CGI程序编译成可执行文件。而ASP与Script(脚本)的编写方式非常类似,它完全不需要重新编译成可执行文件就可以直接运行,再者ASP内置的ADO组件,允许用户通过客户端浏览器存取各种各样的数据库。此外,ASP与CGI最大的不同在于对象向导和组件重用,ASP除了内置的Request对象、Response对象、Server对象、Session对象、Application对象、ObjectContext对象等基本对象外,另外可以允许用户以外挂的方式使用ActiveX控件。当然,ASP本身也提供了多个ActiveX控件供使用,这些组件包括广告轮显组件、文件存取组件、文件连接组件几数据库存取组件等,这些大量扩充且重复使用的组件使ASP的功能远大于CGI。
PHP是一种服务器端HTML-嵌入式脚本描述语言。 其最强大和最重要的特征是其数据库集成层,使用它完成一个含有数据库功能的网页是不可置信的简单。在HTML文件中, PHP脚本程序(语法类似于Perl或者c语言)可以使用特别的PHP标签进行引用, 这样网页制作者也不必完全依赖HTML生成网页了。由于PHP是在服务器端执行的, 客户端是看不到PHP代码的。 PHP可以完成任何CGI脚本可以完成的任务,但它的功能的发挥取决于它和各种数据库的兼容性。 PHP除了可以使用HTTP进行通信,也可以使用IMAP, SNMP, NNTP, POP3协议。
JSP(JavaServer Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。
Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。
JSP与Java Servlet一样,是在服务器端执行的,通常返回该客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
CGI 、ASP、JSP有什么区别
JSP是Sun公司推出的新一代网站开发语言,Sun公司借助自己在Java上的不凡造诣,将Java从Java应用程序和Java Applet之外,又有新的硕果,就是JSP,Java Server Page.JSP可以在Serverlet和JavaBean的支持下,完成功能强大的站点程序. ASP.net 是一种建立在通用语言上的程序构架,能被用于一台Web服务器来建立强大的Web应用程序.ASP.net提供许多比现在的Web开发模式强大的的优势. 三者都提供在 HTML代码中混合某种程序代码,由语言引擎解释执行程序代码的能力.但JSP代码被编译成 Servlet并由Java虚拟机解释执行,这种编译操作仅在对JSP页面的第一次请求时发生.在ASP ,PHP,JSP环境下,HTML代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑.普通的 HTML页面只依赖于Web服务器,而ASP ,PHP,JSP页面需要附加的语言引擎分析和执行程序代码.程序代码的执行结果被重新嵌入到HTML代码中,然后一起发送给浏览器.ASP ,PHP,JSP三者都是面向Web服务器的技术,客户端浏览器不需要任何附加的软件支持. JSP: 1 将内容的产生和显示进行分离 使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面.使用JSP标识或者小脚本来产生页面上的动态内容.产生内容的逻辑被封装在标识和JavaBeans群组件中,并且捆绑在小脚本中,所有的脚本在服务器端执行.如果核心逻辑被封装在标识和Beans中,那么其它人,如Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的产生.在服务器端,JSP引擎解释JSP标识,产生所请求的内容(例如,通过存取JavaBeans群组件,使用JDBC技术存取数据库),并且将结果以HTML(或者XML)页面的形式发送回浏览器.这有助于作者保护自己的代码,而又保证任何基于HTML的Web浏览器的完全可用性. 2 强调可重用的群组件 绝大多数JSP页面依赖于可重用且跨平台的组件(如:JavaBeans或者Enterprise JavaBeans)来执行应用程序所要求的更为复杂的处理.开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者用户团体所使用.基于组件的方法加速了总体开发过程,并且使得各种群组织在他们现有的技能和优化结果的开发努力中得到平衡. 3 采用标识简化页面开发 Web页面开发人员不会都是熟悉脚本语言的程序设计人员.JavaServer Page技术封装了许多功能,这些功能是在易用的,与JSP相关的XML标识中进行动态内容产生所需要的.标准的JSP标识能够存取和实例化 JavaBeans组件,设定或者检索群组件属性,下载Applet,以及执行用其它方法更难于编码和耗时的功能. 由于JSP页面的内置脚本语言是基于Java程序设计语言的,而且所有的JSP页面都被编译成为Java Servlet,JSP页面就具有Java技术的所有好处,包括健壮的存储管理和安全性. 作为Java平台的一部分,JSP拥有Java程序设计语言"一次编写,各处执行"的特点.随着越来越多的供货商将JSP支持加入到他们的产品中,您可以使用自己所选择的服务器和工具,修改工具或服务器并不影响目前的应用. ASP.NET 1.增强的性能.ASP.NET 是在服务器上运行的编译好的公共语言运行库代码.与被解释的前辈不同,ASP.NET 可利用早期绑定,实时编译,本机优化和盒外缓存服务.这相当于在编写代码行之前便显著提高了性能. 2.世界级的工具支持.ASP.NET Framework 补充了 Visual Studio 集成开发环境中的大量工具箱和设计器.WYSIWYG 编辑,拖放服务器控件和自动部署只是这个强大的工具所提供功能中的少数几种. 3.简易性和可管理性.ASP.NET 使执行常见任务变得容易,从简单的窗体提交和客户端身份验证到部署和站点配置.另外,公共语言运行库利用托管代码服务(如自动引用计数和垃圾回收)简化了开发.ASP.NET 采用基于文本的分层配置系统,简化了将设置应用于服务器环境和 Web 应用程序.由于配置信息是以纯文本形式存储的,因此可以在没有本地管理工具帮助的情况下应用新设置.此"零本地管理"哲学也扩展到了 ASP.NET Framework 应用程序的部署.即使是在部署或替换运行的编译代码时. 4.可缩放性和可用性.ASP.NET 在设计时考虑了可缩放性,增加了专门用于在聚集环境和多处理器环境中提高性能的功能.另外,进程受到 ASP.NET 运行库的密切监视和管理,以便当进程行为不正常(泄漏,死锁)时,可就地创建新进程,以帮助保持应用程序始终可用于处理请求. 5.自定义性和扩展性.ASP.NET 随附了一个设计周到的结构,它使开发人员可以在适当的级别"插入"代码.实际上,可以用自己编写的自定义组件扩展或替换 ASP.NET 运行库的任何子组件.实现自定义身份验证或状态服务一直没有变得更容易. 应用范围 ASP是Microsoft开发的动态网页语言,也继承了微软产品的一贯传统,只能执行于微软的服务器产品,IIS(Internet Information Server) (windows NT)和PWS(Personal Web Server)(windows 98)上.Unix下也有ChiliSoft的组件来支持ASP,但是ASP本身的功能有限,必须通过ASP+COM的群组合来扩充,Unix下的COM实现起来非常困难. PHP3可在Windows,Unix,Linux的Web服务器上正常执行,还支持IIS,Apache等一般的Web服务器,用户更换平台时,无需变换PHP3代码,可即拿即用. JSP同PHP3类似,几乎可以执行于所有平台.如Win NT,Linux,Unix.在NT下IIS通过一个外加服务器,例如JRUN或者ServletExec,就能支持JSP.知名的Web服务器Apache已经能够支持JSP.由于Apache广泛应用在NT,Unix和Linux上,因此JSP有更广泛的执行平台.虽然现在NT操作系统占了很大的市场份额,但是在服务器方面Unix的优势仍然很大,而新崛起的Linux更是来势不小.从一个平台移植到另外一个平台,JSP和JavaBean甚至不用重新编译,因为Java字节码都是标准的与平台无关的. ASP.NET 基于公共语言运行库,因此 Web 应用程序开发人员可以利用整个平台的威力和灵活性..NET Framework 类库,消息处理和数据访问解决方案都可从 Web 无缝访问.ASP.NET 也与语言无关,所以可以选择最适合应用程序的语言,或跨多种语言分割应用程序.另外,公共语言运行库的交互性保证在迁移到 ASP.NET 时保留基于 COM 的开发中的现有投资.
asp jsp cgi php之间的区别
就我个人的意见,PHP只适合做小型的网站开发,大型的站点就很困难了(能做,但是很痛苦!)
扩充性:
1、PHP用光了自己的一堆函数以后,要扩充似乎是很困难的。据我一位玩PHP和c比较好的朋友说,“可以扩充,要用c来写,然后编译进PHP里面去”。请问,用PHP的朋友中有多少能达到这个水平的?
2、ASP。如果你认为asp只是那几个response/request等对象,那你错了。
个人认为,ASP只是一种技术,如果没有MS的com/com+,asp就什么都没有了。说得过份一点,asp本身连一个赋值语句,连一个if都没有!
正是基于此,ASP拥有很强的扩充性。你不熟悉vbs,你可以用jscript,你可以用perlscript,你可以通过安装xscript来使用你熟悉的脚本语言。你会vb/delphi/vc/bcb..吗?那你可以写自己的组件,然后用asp来使用它。
3、java
同asp一样,java通过不断增多的(公司发布的或是自己编译的)class来扩展自已。而且jsp与asp相比有一个大的优点:jsp是基于java的,拥有强大的程序语法和天然的平台无关性。
执行效率:
1、PHP是基于解释型的。
“因为不用编译而且高阶,所以这类语言的程序效率通常很差,又因为原始程序代码暴露在外,所以拿它来写写工具程序自己用可以,但是拿来开发软件产品比较不恰当(除非你不在乎原始码外流)。”(此段引用蔡学墉文章“你该学什么程序语言?”)。
虽然PHP可以通过使用第三方的zend(我对PHP不是太熟悉)来弥补这个缺陷,但是似乎Zend是收费的,而且使用第三方的东西已经不是PHP本身的讨论了。
2、ASP
asp发展较早,因此早期的asp1.0、asp2.0、asp3.0都是基于解释的,有同PHP相同的问题。不过自MS的.net以后,asp.net在第一次加载时进行编译,并加载于内存中,因此第一次以后的执行效率已经是相当快速了。
3、JSP。
java本身就是属于编译的语言,目前的jsp服务器产品大多是做JIT编译的,JSP在第一次加载时被编译,因而与PHP相比在执行效率上有明显的提高。