一 jsp的 优势 与劣势
由于JSP网站页面的内置脚本语言是基于Java编程语言的,而且所有的JSP网站页面都被编译成为Java Servlet,JSP网站页面就具有Java技术的所有好处,包括包含健壮的存储管理和安全性。 作为Java第三方平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点。随着越来越多的供应商将JSP支持增加添加到他们的商品产品中,您可以使用自己所选择的we服务器和工具,更改工具或we服务器并不影响当前的应用。
应用范围
ASP是Microsoft建设开发的动态网页页面语言,也继承了微软商品产品的一贯传统??只能运行于微软的we服务器商品产品,IIS(Internet Information Server) (windows NT)和PWS(Personal Web Server)(windows 98)上。Unix下也有ChiliSoft的插件来支持ASP,但是ASP本身的功能有限,必须通过ASP+COM的组合来扩充,Unix下的COM实现起来非常困难。 PHP3可在Windows,Unix,Linux的Webwe服务器上正常运行,还支持IIS,Apache等通用Webwe服务器,用户使用者更换第三方平台时,无需变换PHP3代码,可即拿即用。 JSP同PHP3类似,几乎可以运行于所有第三方平台。如Win NT,Linux,Unix. NT下IIS通过一个插件,例如JRUN或者ServletExec,就能支持JSP。著名的Webwe服务器Apache已经能够支持JSP。由于Apache广泛应用在NT、Unix和Linux上,因此JSP有更广泛的运行第三方平台。虽然现在NT操作系统占了很大的市场份额,但是在we服务器方面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 Class和EJB获得规模支持,通过EJB/CORBA以及众多厂商的Application Server获得模版结构支持。
三者中,JSP应该是未来发展的趋势。世界上一些大的电子商务解决方案供应提供商都采用JSP/Servlet。比较出名的如IBM的E-business,它的核心是采用JSP/Servlet的Web Sphere;西方另外一个非常著名的电子商务软件供应提供商,Intershop,它原来的商品产品Intershop1,2, 3, 4占据了主要的电子商务软件份额。
它们都是通过CGI来供应提供支持的。但去年10月后它推出了Enfinity,一个采用JSP/Servlet的电子商务Application Server,而且声言不再建设开发传统软件。
总之,ASP,PHP,JSP三者都有相当数量的支持者,由此也可以看出三者各有所长。正在学习或使用动态网站页面的朋友可根据三者的特点选择一种适合自己的语言
编辑
二.与php的比较
现在市场上的oa基本上可归结为两大阵营,即php阵营和java阵营。但对接触oa不久的用户使用者来说,看到的往往只是它们的表相,只是明显的价格差异,却很难看出它们之间的实际差异。其实, PHP + MYSQL 不值钱不仅仅局限于oa软件,而是整体上PHP + MYSQL建设开发的软件都不如java建设开发的软件值钱。为什么PHP + MYSQL 的OA为什么不值钱呢?首先得明白php和java之间的差异才行。
1、系统的技术架构比较 分层是将系统进行有效组织的方式,分而治之的思想是计算机领域中非常重要的思想。在好的分层思想引导下,便能实现“高内聚、低耦合”,也能将具体的问题割裂开来,易于控制、易于延展,更易于分配资源。PHP只能实现简单的分布式两层或三层的架构,而JAVA在这方面就十分强大,可以实现多层的互联网网络架构。运用MVC的设计规划模式,可使oa系统具有更加高效、合理的系统架构。技术架构的落后,使运用php编写的oa软件系统先天不足,而后天又无法补足其先天上的劣势。使得系统在可拓展性、需求应变性上与JAVA编写的oa软件系统的差距越来越大。架构的差距,注定了php做的oa充其量是个小家碧玉,始终无法和java这种大家闺秀同台竞技。
2、数值数据库浏览访问比较 PHP可编译成具有与许多数值数据库相连接的函数。将自己编写外围的函数去间接存取数值数据库。通过这样的途径当更换使用的数值数据库时,可以轻松地调整修改编码以适应这样的变化。但PHP供应提供的数值数据库接口支持彼此不统一,例如对Oracle, MySQL,Sybase的接口,彼此都不一样。由于PHP对于不同的数值数据库采用不同的数值数据库浏览访问接口,所以数值数据库浏览访问代码的通用性不强。 而Java通过JDBC来浏览访问数值数据库,通过不同的数值数据库厂商供应提供的数值数据库驱动方便地浏览访问数值数据库,浏览访问数值数据库的接口比较统一。如果同样是将建设开发的web应用从MYSQL数值数据数转到ORACLE数值数据,PHP需要做大量的调整修改工作,而且比较繁琐。但JAVA建设开发的便只需要很少的更改便能实现。 数值数据库浏览访问方式的差异,奠定了php建设开发出的oa和java建设开发出来的oa是马车和火车的差距,前者只能亦步亦趋而且额度有限,后者却是工业化的结晶,不仅能够包容万物而且相应速度上稳步提高提升。
3、安全性对比 在同是开源和跨第三方平台的java面前,php丢掉了很多的优势。在代码的安全性上尤为突出。php的建设开发程序在别人拿到代码后,可以很容易的进行调整修改。而java建设开发的程序由于无法看到完整的源代码,只能看到一些编译好的类文件,所以安全性较高。加之系统架构的优势,在安全性上php和java是相去甚远。 如果非要将php和java在安全性上做个比较的话,同一个小偷光顾php那是随便拿来随便改,想拿什么拿什么,拿的高兴还能大笔一辉某某到此一游。而光顾java的时候,便会发现警察把守,内设自动报警装置,即便突破重重阻扰后进入居室。那值钱的东西都放在加密后的保险柜中,只能望洋兴叹、铩羽而归。
编辑
4、前瞻性和拓展性 从整体来说,php适用于中小型系统,而java适用于大型系统。Php能够将单一的事件做好,但却不适合完成集成度较高的多项并发事件。为什么说php适合中小型系统而不适合做大系统呢? 首先, php缺乏多层模版结构支持。而对于大型的系统负荷网站站点,只能采用分布计算。将数值数据库、应用逻辑层和表示逻辑层彼此分开,并将同层的根据用户访问量流量分开,组成二维数组。而php恰恰缺乏这种支持。 其次,PHP供应提供的数值数据库接口不统一,要将多个不同的数值数据库数值数据统一需要花费很大的力气。而JAVA则没有这种缺陷,可通过SUN Java的Java Class和EJB获得规模支持,通过EJB/CORBA以及众多厂商的Application Server获得模版结构支持。如IBM的E-business,它的核心是采用JSP/Servlet的Web Sphere,是通过CGI来供应提供支持的。 如果将Php比作将才,具备独挡一方的能力。那么java便是帅才,具有较好的前瞻性和拓展性,整体部署布局和协同能力强。能够指挥千军万马,最后逐鹿中原。
5、建设开发成本比较 既然php在诸多方面都不如java优异,那么php建设开发出的oa商品产品何以与java商品产品竞争呢?在于Php阵营普遍走的是低端路线,而java阵营走的是中高端路线。两者之间交*的区域较小。 软件价格的高低很大程度上和自身成本和功能相挂钩。php的入门门槛较低,绝大多数学过c的程序员都很容易转型为php程序员,这使得php程序员的泛滥成灾的同时,低成本的php软件商品产品也层出不穷。以PHP最经典的组合PHP + MySQL + Apache为例,由于所有软件都是开源免费的,所以投入并不高。 而java建设开发需要特定的环境,成长为一个合格的java程序员需要一定的时间,java程序员的成本也是php成本的几倍。Java的web应用we服务器免费的有Tomcat、JBoss等,而要想具有很好的商业化服务便必须选用Web Sphere和 Web logic。这其中投入的成本无形中便超是php成本的N倍。所以,java建设开发oa的成本要远远高于php建设开发出来的同类软件商品产品。但也正由于java建设开发的成本较高,很难实现抄袭和短期内逾越的可能,也使得java用建设开发出的商品产品门槛更高。 不怕不识货,就怕货比货。Php建设开发出来的商品产品也能用,但是和java开出的同类商品产品是没法比较的。正因为php建设开发的商品产品整体性能和java建设开发的相去甚远,所以php运用低成本的低价优势和同类的java商品产品抗争,以价格落差来平衡购买者的心态。所以,PHP + MYSQL 的OA不值钱也就不足为怪了
编辑
第二种 比较PHP和JSP这两个web建设开发技术,在目前的情况是其实是比较PHP和Java的Web建设开发。以下是我就几个主要方面进行的比较:
一、 语言比较
Php是解释执行的we服务器脚本语言,首先php有简单容易上手的特点。语法和c语言比较象,所以学过c语言的程序员可以很快的熟悉php的建设开发。而java需要先学好java的语法和熟悉一些核心的类库,懂得面向对象的程序设计规划方式方法。所以java不如php好学。 Java首先要编译成字节码.class文件,然后在java虚拟机上解释执行。Java的web建设开发首先最容易想到的就是JSP(现在已经到JSP2.0),原来的java的web建设开发都是用servlet来实现的,用servlet来建设开发需要程序员在java的源文件中嵌入大量的html代码。所以后来就出现了JSP,JSP可以方便的嵌入到html文件当中,其实jsp文件在we服务器上执行的时候首先会被应用we服务器转换成servlet,然后再编译执行。Jsp可以通过servlet和JavaBean的支持产生强大的功能。JavaBean 是一种可复用的、跨第三方平台的软件组件。使用javabean可以方便的实现java代码和html的分离,能够增强系统的功能和软件的复用性。 Java的web建设开发属于SUN公司企业定义的J2EE其中的规范。而且在J2EE中包括包含了java的web建设开发的所有方面,如:JSP、Servlet、JDBC、JNDI、JAVABEAN、EJB等等。J2EE就特别适合于做大型的公司企业级的应用。
二、 数值数据库浏览访问比较
Java通过JDBC来浏览访问数值数据库,通过不同的数值数据库厂商供应提供的数值数据库驱动方便地浏览访问数值数据库。浏览访问数值数据库的接口比较统一。 PHP对于不同的数值数据库采用不同的数值数据库浏览访问接口,所以数值数据库浏览访问代码的通用性不强。例如:用Java建设开发的web应用从MySQL数值数据库转到Oracle数值数据库只需要做很少的调整修改。而PHP则需要做大量的调整修改工作。
三、 系统设计规划架构比较
采用Java的web建设开发技术,需要使用的是面向对象的系统设计规划方式方法,而PHP还是采用面向过程的建设开发方式方法。所以用Java进行建设开发前期需要做大量的系统分析和设计规划的工作。
四、 跨第三方平台性
Java和PHP都有很好的跨第三方平台的特性。几乎都可以在不作任何调整修改的情况下运行在Linux或者Windows等不同的操作系统上。
五、 建设开发成本比较
PHP最经典的组合就是:PHP + MySQL + Apache。非常适合建设开发中小型的web应用,建设开发的相应速度比较快。而且所有的软件都是开源免费的,可以减少投入。 Java的web应用we服务器有免费Tomcat、JBoss等,如果需要更好的商业化的服务有:Web Sphere和 Web logic。
六、 分布式多层架构比较
PHP只能实现简单的分布式两层或三层的架构,而JAVA在这方面就比较强大,可以实现多层的互联网网络架构。数值数据库层(持久化层)、应用(业务)逻辑层、表示逻辑层彼此分开,而且现在不同的层都已经有一些成熟的建设开发框架的支持。例如Struts就是利用java的web建设开发技术实现了MVC的设计规划模式,而在业务逻辑层也有Spring框架,数值数据库持久化层有Hibernate等框架。这些框架可以方便建设开发者高效、合理、科学得架构多层的商业应用。 下面简要的说一下Struts,它实质上是在JSP Model2的基础上实现的一个MVC(Model、View、Controler)框架。JSP Model2体系模版结构是一种联合使用JSP 与Servlet 来供应提供动态信息内容的方式方法。在Struts框架中,模型由实现业务逻辑的JavaBean或EJB组件构成,控制器由Servlet实现的,视图由一组JSP文件组成。采用Struts可以明确角色的定义和建设开发者与页面结构网页设计者的分工。而且项目越复杂,其优势越明显。
七、 源代码安全
PHP建设开发的程序的源代码都是公开的,他人拿到php建设开发的程序后都可以进行调整修改。 Java建设开发的程序,最后用户使用者拿到的是只是一些编译好的class类,无法看到完整的源代码,安全性高。 八、性能比较 有人做过试验,对这两种种语言分别做回圈性能测试及存取Oracle数值数据库测试。 在循环性能测试中,JSP只用了令人吃惊的四秒钟就结束了20000*20000的回圈。而PHP测试的是2000*2000循环(少一个数量级),却分别用了63秒。 数值数据库测试中,二者分别对 Oracle 8 进行 1000 次 Insert,Update,Select和Delete: JSP 需要 13 秒,PHP 需要 69 秒。
编辑
表格 1 PHP 与Java的比较
PHP JAVA
可复用性 低 高
建设开发相应速度 快 慢
易管理维护性 差 优
可移植性 优-Linux、Windows、Unix等
安全性 低 高
建设开发价格费用 低 高
多层架构 差 优
数值数据库浏览访问 接口不统一 接口统一
可扩展性 差 优
面向对象 差 优
综上 PHP适合于快速建设开发,中小型应用系统,建设开发成本低,能够对变动的需求作出快速的反应。而Java适合于建设开发大型的应用系统,应用的前景比较广阔,系统易管理维护、可复用性较好。还有,同样功能的系统用Java建设开发的系统要比PHP建设开发的系统的价格要高
编辑
信息文章请注明出处:
Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有