其实哪个好,关键在於写程序的人的功力好坏,所以没有谁好谁不好! 但还是有些使用需求的选择来决定使用那种工具语言。如果你想要找资源丰富、唾手可得的现成软件,那 PHP 便可以选择,且建构环境也可较容易得到支援,开发也较容易迅速。 如果你的需求可能是需要应付C10K问题(即「在同时连接到服务器的客户端数量超过10000 个的环境中,即便硬件性能足够, 依然无法正常提供服务」),那 JSP 便是不错的选择! PHP 或 JSP 都是从 C 语言发展出来的,所以语法大同小异,最大差别在后端的服务器环境,而速度快慢也不是简単区分出来,主要还得看应用的模式。 所以简言之,在客户端有近 10K 人次同时对系统作处理请求时,使用 PHP 一定无法应付!但客户端没那么多人次(数十或数百)同时对系统作处理请求,其实 PHP 效率不会输给 JSP。 PHP 与 JSP 也可以依不同应用而搭配使用,不见得只能选其一,我个人特别喜爱把 JSP 用来开发 API 使用,但 Web UI 则以 PHP 为主。能够善用工具者,才是真正的大赢家!
现在InterNet 越来越成为生活中不可或缺的一部分,制作网页的动态语言也越来越多,主要流行的有以下几种,ASP,PHP 和 JSP,他们之间互有优缺点,笔者在工作实践中对他们作了一下比较浅显的比较。 ASP 由于其简单功能实用等方面受到广大朋友的喜欢,再加上MS的强有力支持,可以说是时下作站点最为流行的语言,他借助MS的Com+ 技术,几乎可以实现在C/S 能够实现的所有功能,可以说确实具有相当的竞争力。ASp的代码实现也很简单,MS 提供的InterDev 在RAD 的基础上,使Asp 的开发一夜之间火遍了大江南北。但是他的缺点是,由于MS 长久以来的霸道作风,他只能运行在MS 的平台上,因此在关键性的应用上使人难以轻易接受。 PHP 则市秉承Linux 的GNU 风格,借助与源码公开,使他迅速成为世界上目前应用最为广泛的站点制作语言之一。借助与C++的形式,引用类的概念,使得代码的可重复性应用便的异常简单。加上他和Linux,Apache 和MySql 的紧密配合,关键性的应用也没有问题(有名的Sina就是采用Php)。但是他有一个比较大的麻烦,就是没有一个非常有实力的公司专门给他做支持,因此相关的学习资料比较少,目前在国内使用他的站点比较多,但是专门讲解他的站点就比较少。给初学者带来了很多的麻烦。 JSP 是Sun公司推出的新一代站点开发语言,他完全解决了目前ASP,PHP的一个通病--脚本级执行(据说PHP4 也已经在Zend 的支持下,实现编译运行).Sun 公司借助自己在Java 上的不凡造诣,将Java 从Java 应用程序 和 Java Applet 之外,又有新的硕果,就是Jsp--Java Server Page。Jsp 可以在Serverlet和JavaBean的支持下,完成功能强大的站点程序。 我在实际工作中,就这三种语言的性能进行了比较 首先进行的是循环性能测试首先测试的是Jsp测试采用 20000*20000 次循环运算(有没有搞错,这么多),测试结果另人不可思议,该程序只用了不到 4 秒的时间就运行结束了。(没有搞错吧),程序代码如下: <jsp:useBean id='clock' scope='page' class='dates.JspCalendar' type="dates.JspCalendar"/> <jsp:getProperty name="clock" property="time" /> <% int i=0; int j=0; int k=0; for(i=0;i<20000;i++){ for(j=0;j<20000;j++){ } } %> <jsp:useBean id='clock1' scope='page' class='dates.JspCalendar' type="dates.JspCalendar"/> <jsp:getProperty name="clock1" property="time" /> 下一步测试的是 PHP,最初也准备测试 20000*20000次,但是不管把程序最大运行时间调的再大,也无法运行结束,因此改为 2000*2000 ,运行时间竟然达到 84 秒,程序代码如下: <? $TTime=date("Y-n-d"). " " . date("H:i:s"); echo $TTime; echo "<br>"; for($i=0;$i<1000;$i++){ for($j=0;$j<1000;$j++){ } } $TTime=date("Y-n-d"). " " . date("H:i:s"); echo $TTime; ?> 最后进行的是Asp 的测试,测试的循环也是 2000*2000(几个0可要看清楚),运行时间是 63 秒,程序代码如下: <% response.write now response.write "<br>" for i=0 to 2000 for j=0 to 2000 next next response.write now %> 另外,我也对数据库连接作了测试,由于Jsp 在连接数据库时需要通过 JDBC,因此必须专门为此作一个连接数据库的JavaBean,为了简单起见,我只把测试结果写出来,想要代码的朋友,和我联系! 对 Oracle 8 进行 1000 次 Insert,Update,Select,和Delete Jsp 需要 13 秒 Php 需要 69 秒 ASP 需要 73 秒
jsp,php可以动态连接数据库,但是最终都是由服务器解析成html的。html是一切网页语言的基础。就是说,jsp,php可以嵌套在html中。具体看如下解释:html是基本的;jsp,asp,php文档都以html为基础,只是用程序代码动态输出html代码,特点是同一文档根据不同情况可以输出不同的html代码。jsp,asp,php文档都要经过编译后生成html代码,也就是我们在浏览器中看到的结果,不同之处在于jsp是一般浏览器都能编译的,asp和php需要服务器支持,另外cgi也需要服务器支持。从编程角度看,asp和php都可以支持多充语言编程,可以javascript,vbscript或者perl等等,甚至可以混合语言编程。不能简单从扩展名判断其文档类型!应该从服务器和源代码来判断。里面有<%...%>的一般是asp文档,里面有$的一般是php文档。由于一般asp和php都有限制,所以在浏览器中采用查看源代码或者直接下载该文档的方法都是看不到真正源代码的,只能看到源代码运行后生成的html,真正得到源代码恐怕只能攻击并破解服务器:(aspx与asp类似,只是支持.net,在开发中更方便,功能更强大。至于数据库技术的使用,则是另一话题,不论jsp,asp,php都可以使用数据库,考虑到保护源代码,一般都用asp和php,但这不是本质差别,因为不论jsp,asp,php都可以不使用数据库。
JSP ASP PHP 运行速度 快 较快 较快 运行耗损 较小 较大 较大 难易程度 容易掌握 简单 简单 运行平台 绝大部分平台均可 Windows平台 Windows/UNIX平台 扩展性 好 较好 较差 安全性 好 较差 好 函数性 多 较少 多 数据库支持 多 多 多 厂商支持 多 较少 较多 对XML的支持 支持 不支持 支持 对组件的支持 支持 支持 不支持 对分布式处理的支持 支持 支持 不支持 应用程序 较广 较广 较广----------------------------------------------------转载: 慢慢看吧! ASP、JSP与PHP的比较 目前,最常用的三种动态网页语言有ASP(Active Server Pages),JSP(Java Server Pages), PHP (Hypertext Preprocessor)。 简 介 ASP全名Active Server Pages,是一个WEB服务器端的开发环境, 利用它可以产生和运 行动态的、交互的、高性能的WEB服务应用程序。ASP采用脚本语言VB Script(Java script )作为自己的开发语言。 PHP是一种跨平台的服务器端的嵌入式脚本语言. 它大量地借用C,Java和Perl语言的语法 , 并耦合PHP自己的特性,使WEB开发者能够快速地写出动态生成页面.它支持目前绝大多数数 据库。还有一点,PHP是完全免费的,不用花钱,你可以从PHP官方站点(http://www.php.ne t)自由下载。而且你可以不受限制地获得源码,甚至可以从中加进你自己需要的特色。 JSP 是Sun公司推出的新一代站点开发语言,他完全解决了目前ASP,PHP的一个通病-- 脚本级执行(据说PHP4 也已经在Zend 的支持下,实现编译运行).Sun 公司借助自己在Jav a 上的不凡造诣,将Java 从Java 应用程序 和 Java Applet 之外,又有新的硕果,就是Js p--Java Server Page。Jsp 可以在Serverlet和JavaBean的支持下,完成功能强大的站点 程序。 三者都提供在 HTML 代码中混合某种程序代码、由语言引擎解释执行程序代码的能力。 但JSP代码被编译成 Servlet 并由 Java 虚拟机解释执行,这种编译操作仅在对 JSP 页面的 第一次请求时发生。在 ASP 、PHP、JSP 环境下, HTML 代码主要负责描述信息的显示样式 ,而程序代码则用来描述处理逻辑。普通的 HTML 页面只依赖于 Web 服务器,而 ASP 、PH P、JSP 页面需要附加的语言引擎分析和执行程序代码。程序代码的执行结果被重新嵌入到 HTML 代码中,然后一起发送给浏览器。 ASP 、PHP、 JSP三者都是面向 Web 服务器的技术 ,客户端浏览器不需要任何附加的软件支持。 技术特点 ASP: 1. 使用 VBScript 、 JScript 等简单易懂的脚本语言,结合 HTML 代码,即可快速地完成 网站的应用程序。 2. 无须 compile 编译,容易编写,可在服务器端直接执行。 3. 使用普通的文本编辑器,如 Windows 的记事本,即可进行编辑设计。 4. 与浏览器无关 (Browser Independence), 用户端只要使用可执行 HTML 码的浏览器,即 可浏览 Active Server Pages 所设计的网页内容。 Active Server Pages 所使用的脚本语 言 (VBScript 、 Jscript) 均在 WEB 服务器端执行,用户端的浏览器不需要能够执行这些 脚本语言。 5.Active Server Pages 能与任何 ActiveX scripting 语言相容。除了可使用 VBScript 或 JScript 语言来设计外,还通过 plug-in 的方式,使用由第三方所提供的其他脚本语言 ,譬如 REXX 、 Perl 、 Tcl 等。脚本引擎是处理脚本程序的 COM(Component Object Mod el) 物件。 6. 可使用服务器端的脚本来产生客户端的脚本。 7.ActiveX Server Components(ActiveX 服务器元件 ) 具有无限可扩充性。可以使用 Vi sual Basic 、 Java 、 Visual C++ 、 COBOL 等编程语言来编写你所需要的ActiveX Se rver Component 。 PHP: 1.数据库连接 PHP可以编译成具有与许多数据库相连接的函数。PHP与MySQL是现在绝佳的组合。你还可 以自己编写外围的函数取间接存取数据库。通过这样的途径当你更换使用的数据库时,可以 轻松地更改编码以适应这样的变。PHPLIB就是最常用的可以提供一般事务需要的一系列基库 。但PHP提供的数据库接口支持彼此不统一,比如对Oracle, MySQL, Sybase的接口,彼此 都不一样。这也是PHP的一个弱点。 2.面向对象编程 PHP提供了类和对象。基于web的编程工作非常需要面向对象编程能力。PHP支持构造器、 提取类等。 JSP: 1.将内容的生成和显示进行分离 使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使 用JSP标识或者小脚本来生成页面上的动态内容。生成内容的逻辑被封装在标识和JavaBeans 组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。如果核心逻辑被封装在标识和 Beans中,那么其他人,如Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内 容的生成。 在服务器端,JSP引擎解释JSP标识和小脚本,生成所请求的内容(例如,通过访问Java Beans组件,使用JDBCTM技术访问数据库,或者包含文件),并且将结果以HTML(或者XML) 页面的形式发送回浏览器。这有助于作者保护自己的代码,而又保证任何基于HTML的Web浏览 器的完全可用性。 2.强调可重用的组件 绝大多数JSP页面依赖于可重用的,跨平台的组件(JavaBeans或者Enterprise JavaBea nsTM组件)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操 作的组件,或者使得这些组件为的使用者或者客户团体所使用。基于组件的方法加速了 总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。 3.采用标识简化页面开发 Web页面开发人员不会都是熟悉脚本语言的编程人员。JavaServer Page技术封装了许多 功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。标准的JS P标识能够访问和实例化JavaBeans组件,设置或者检索组件属性,下载Applet,以及执行用 其他方法更难于编码和耗时的功能。 通过开发定制化标识库,JSP技术是可以扩展的。今后,第三方开发人员和其他人员可以 为常用功能创建自己的标识库。这使得Web页面开发人员能够使用熟悉的工具和如同标识一样 的执行特定功能的构件来工作。 JSP技术很容易整合到多种应用体系结构中,以利用现存的工具和技巧,并且扩展到能够 支持企业级的分布式应用。作为采用Java技术家族的一部分,以及Java 2(企业版体系结构 )的一个组成部分,JSP技术能够支持高度复杂的基于Web的应用。 由于JSP页面的内置脚本语言是基于Java编程语言的,而且所有的JSP页面都被编译成为 Java Servlet,JSP页面就具有Java技术的所有好处,包括健壮的存储管理和安全性。 作为Java平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点。随着越 来越多的供应商将JSP支持添加到他们的产品中,您可以使用自己所选择的服务器和工具,更 改工具或服务器并不影响当前的应用。 应用范围 ASP是Microsoft开发的动态网页语言,也继承了微软产品的一贯传统——只能运行于微软 的服务器产品,IIS (Internet Information Server) (windows NT)和PWS(Personal Web Se rver)(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字节 码都是标准的与平台无关的。 性能比较 有人做过试验,对这三种语言分别做循环性能测试及存取Oracle数据库测试。 在循环性能测试中,JSP只用了令人吃惊的四秒钟就结束了20000*20000的循环。而ASP 、PHP测试的是2000*2000循环(少一个数量级),却分别用了63秒和84秒。(参考PHPLIB) 。 数据库测试中,三者分别对 Oracle 8 进行 1000 次 Insert,Update,Select,和Delete : Jsp 需要 13 秒,Php 需要 69 秒,ASP则 需要 73 秒。 前景分析 目前在国内PHP与ASP应用最为广泛。而JSP由于是一种较新的技术,国内采用的较少。但在 国外,JSP已经是比较流行的一种技术,尤其是电子商务类的网站,多采用JSP。 采用PHP的网站如新浪网(sina)、中国人(Chinaren)等,但由于PHP本身存在的一些缺 点,使得它不适合应用于大型电子商务站点,而更适合一些小型的商业站点。 首先,PHP缺乏规模支持。其次,缺乏多层结构支持。对于大负荷站点,解决方法只有一 个:分布计算。数据库、应用逻辑层、表示逻辑层彼此分开,而且同层也可以根据流量分开 ,组成二维阵列。而PHP则缺乏这种支持。还有上面提到过的一点,PHP提供的数据库接口支 持不统一,这就使得它不适合运用在电子商务中。 ASP和JSP则没有以上缺陷,ASP可以通过Microsoft Windowsd的COM/DCOM获得ActiveX规 模支持,通过DCOM和Transcation Server获得结构支持;JSP可以通过SUN Java的Java Clas s和EJB获得规模支持,通过EJB/CORBA以及众多厂商的Application Server获得结构支持。 三者中,JSP应该是未来发展的趋势。世界上一些大的电子商务解决方案提供商都采用J SP/Servlet。比较出名的如IBM的E-business,它的核心是采用JSP/Servlet的WebSphere; 西方另外一个非常著名的电子商务软件提供商,Intershop。它原来的产品Intershop1 2, 3 , 4占据了主要的电子商务软件份额。它们都是通过CGI来提供支持 的。但去年10月后它推出 了Enfinity,一个采用JSP/Servlet的电子商务Application Server,而且声言不再开发传统 软件。 总之 ASP,PHP,JSP三者都有相当数量的支持者,由此也可以看出三者各有所长。正在学习或 使用动态页面的朋友可根据三者的特点选择一种适合自己的语言。
要看做什么,php语言比较灵活一点,属于入门容易,但是想提升有专点困难。很多东西是要自己属写的,包括php模板引擎,框架之类的,别人写的可能不太符合这个项目要求,很多情况要自己写。java不像php这种弱语言类型。规范比较严格,但是像做金融这一块的话,要求是java+oracle。至于原因在此就不多说了。相比较而言PHP更好做一点。
jsp这是个很大的整套解决方案,常用来代指view层的jsp【允许其他的页面展示,甚至不是jsp】,Model的hibernate,ibatis,Controller层面的struts,spring【这两个可不仅仅是controller,这两个可以统筹全局】这一套整体。php嘛,分的就不那么清楚,他追求的是简单快捷,做个人应用和一些简单的商业应用非常棒,这是jsp+struts/sping+hibernate/ibatis无法匹敌的,但是企业级综合应用,php能不能做都是个问题。总结一下:基本应用,几乎一样;高级应用,各有专攻。
就是PHP语言和JSP语言的区别。PHP是一种快速免费易学的WEB脚本语言,不需要编译即可运行,是在页面被访问时由php编译器进行解释执行的。JSP是基于Java的WEB脚本语言,在首次运行时需要编译,以后就不需要二次编译了。但是综合考虑PHP优于JSP,JSP多用在大型Java项目的网页端呈现,现在已经很少有人JSP了。相对来说,PHP是一门相对独立的语言,而JSP只是Java开发人员顺便掌握的东西,在招聘求职的时候一般只有PHP和Java程序员的招聘,并不会招聘JSP程序员。相对来说ASP更近似JSP,同样的,招聘职位只有.Net程序员而没有ASP程序员。
要看做什么,php语言比较灵活一点,属于入门容易,但是想提升有点困难。很多东西是要自己写的,包括php模板引擎,框架之类的,别人写的可能不太符合这个项目要求,很多情况要自己写。java不像php这种弱语言类型。规范比较严格,但是像做金融这一块的话,要求是java+oracle。至于原因在此就不多说了。相比较而言PHP更好做一点。
PHP程序的优点:1.首先他是免费的,对于许多要考虑运行成本的商业望站来说,尤为重要2.开放源码,所有的源码和稳当都可以买南非复制、编译和传播。3.多平台支持,可以运行在UNIX、Linux或Windows操作系统下4.由于在服务器端运行,是将PHP文件解释成标准的HTML稳当发送过去,因此不受客户端浏览器的限制5.效率高,PHP占用的系统资源叫少,执行速度教快PHP程序的缺点:1.因为没有大公司的支持,可能前途不如ASP、JSP辉煌2.运行环境安装相对教复杂3.相对ASP来说,学习起来可能要稍微复杂些JSP程序的优点:1.多平台支持,可以在几乎所有的服务器系统上运行。无论在哪里都可以迅速转化使用2.编译后运行,能够大大提高执行效率3.JSP采用JAVA技术,而JAVA作为一个成熟的跨平台的程序设计语言,几乎可以实现任何想要实现的功能,对于众多的已有的JAVA程序员来说,学习起来非常容易JSP程序的缺点:1.开发运行环境相对于ASP来说,稍显复杂2.相对 于ASP的VBScript脚本语言来说,JAVA学习起来稍难些