PHP与JSP的比较

如今市场上的oa基本上可归结为两大阵营,即php阵营和java阵营。但对接触oa不久的用户来讲,看到的每每只是它们的表相,只是明显的价格差别,却很难看出它们之间的实际差别。其实, PHP + MYSQL 不值钱不只仅局限于oa软件,而是总体上PHP + MYSQL开发的软件都不如java开发的软件值钱。为何PHP + MYSQL 的OA为何不值钱呢?首先得明白php和java之间的差别才行。

   一、系统的技术架构比较

   分层是将系统进行有效组织的方式,分而治之的思想是计算机领域中很是重要的思想。在好的分层思想引导下,便能实现“高内聚、低耦合”,也能将具体的问题割裂开来,易于控制、易于延展,更易于分配资源。PHP只能实现简单的分布式两层或三层的架构,而JAVA在这方面就十分强大,能够实现多层的网络架构。运用MVC的设计模式,可以使oa系统具备更加高效、合理的系统架构。技术架构的落后,使运用php编写的oa软件系统先天不足,然后天又没法补足其先天上的劣势。使得系统在可拓展性、需求应变性上与JAVA编写的oa软件系统的差距愈来愈大。架构的差距,注定了php作的oa充其量是个小家碧玉,始终没法和java这种你们闺秀同台竞技。

   二、数据库访问比较

   PHP可编译成具备与许多数据库相链接的函数。将本身编写外围的函数去间接存取数据库。经过这样的途径当更换使用的数据库时,能够轻松地修改编码以适应这样的变化。但PHP提供的数据库接口支持彼此不统一,好比对Oracle, MySQL,Sybase的接口,彼此都不同。因为PHP对于不一样的数据库采用不一样的数据库访问接口,因此数据库访问代码的通用性不强。

   而Java经过JDBC来访问数据库,经过不一样的数据库厂商提供的数据库驱动方便地访问数据库,访问数据库的接口比较统一。若是一样是将开发的web应用从MYSQL数据数转到ORACLE数据,PHP须要作大量的修改工做,并且比较繁琐。但JAVA开发的便只须要不多的更改便能实现。

   数据库访问方式的差别,奠基了php开发出的oa和java开发出来的oa是马车和火车的差距,前者只能亦步亦趋并且额度有限,后者倒是工业化的结晶,不只可以包容万物并且速度上稳步提高。

   三、安全性对比

   在同是开源和跨平台的java面前,php丢掉了不少的优点。在代码的安全性上尤其突出。php的开发程序在别人拿到代码后,能够很容易的进行修改。而java开发的程序因为没法看到完整的源代码,只能看到一些编译好的类文件,因此安全性较高。加之系统架构的优点,在安全性上php和java是相去甚远。

   若是非要将php和java在安全性上作个比较的话,同一个小偷光顾php那是随便拿来随便改,想拿什么拿什么,拿的高兴还能大笔一辉某某到此一游。而光顾java的时候,便会发现警察把守,内设自动报警装置,即使突破重重阻扰后进入居室。那值钱的东西都放在加密后的保险柜中,只能望洋兴叹、铩羽而归。

   四、前瞻性和拓展性

   从总体来讲,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即是帅才,具备较好的前瞻性和拓展性,总体布局和协同能力强。可以指挥千军万马,最后逐鹿中原。

   五、开发成本比较

   既然php在诸多方面都不如java优异,那么php开发出的oa产品何以与java产品竞争呢?在于Php阵营广泛走的是低端路线,而java阵营走的是中高端路线。二者之间交*的区域较小。

   软件价格的高低很大程度上和自身成本和功能相挂钩。php的入门门槛较低,绝大多数学过c的程序员都很容易转型为php程序员,这使得php程序员的泛滥成灾的同时,低成本的php软件产品也层出不穷。以PHP最经典的组合PHP + MySQL + Apache为例,因为全部软件都是开源免费的,因此投入并不高。

   而java开发须要特定的环境,成长为一个合格的java程序员须要必定的时间,java程序员的成本也是php成本的几倍。Java的web应用服务器免费的有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开发。如下是我就几个主要方面进行的比较: 

1、 语言比较 

Php是解释执行的服务器脚本语言,首先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文件在服务器上执行的时候首先会被应用服务器转换成servlet,而后再编译执行。Jsp能够经过servlet和JavaBean的支持产生强大的功能。JavaBean 是一种可复用的、跨平台的软件组件。使用javabean能够方便的实现java代码和html的分离,可以加强系统的功能和软件的复用性。 

Java的web开发属于SUN公司定义的J2EE其中的规范。并且在J2EE中包括了java的web开发的全部方面,如:JSP、Servlet、JDBC、JNDI、JAVABEAN、EJB等等。J2EE就特别适合于作大型的企业级的应用。 

2、 数据库访问比较 

Java经过JDBC来访问数据库,经过不一样的数据库厂商提供的数据库驱动方便地访问数据库。访问数据库的接口比较统一。 

PHP对于不一样的数据库采用不一样的数据库访问接口,因此数据库访问代码的通用性不强。例如:用Java开发的web应用从MySQL数据库转到Oracle数据库只须要作不多的修改。而PHP则须要作大量的修改工做。 

3、 系统设计架构比较 

采用Java的web开发技术,须要使用的是面向对象的系统设计方法,而PHP仍是采用面向过程的开发方法。因此用Java进行开发前期须要作大量的系统分析和设计的工做。 

4、 跨平台性 

Java和PHP都有很好的跨平台的特性。几乎均可以在不做任何修改的状况下运行在Linux或者Windows等不一样的操做系统上。 

5、 开发成本比较 

PHP最经典的组合就是:PHP + MySQL + Apache。很是适合开发中小型的web应用,开发的速度比较快。并且全部的软件都是开源免费的,能够减小投入。 

Java的web应用服务器有免费Tomcat、JBoss等,若是须要更好的商业化的服务有:Web Sphere和 Web logic。 

6、 分布式多层架构比较 

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能够明确角色的定义和开发者与网页设计者的分工。并且项目越复杂,其优点越明显。 

7、 源代码安全 

PHP开发的程序的源代码都是公开的,他人拿到php开发的程序后均可以进行修改。 

Java开发的程序,最后用户拿到的是只是一些编译好的class类,没法看到完整的源代码,安全性高。 

8、性能比较 

有人作过试验,对这两种种语言分别作回圈性能测试及存取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开发的系统的价格要高
相关文章
相关标签/搜索