开启互联网+ 从业聚质开始

咨询热线:
0931-8539889 0931-8539788

兰州网站建设对Java和PHP在Web开发方面的比较

发布日期:2011-10-18点击量:1861次

    PHP是解释执行的服务器脚本语言,Java的Web开发属于SUN公司定义的J2EE其中的规范。比较PHP和JSP这两个Web开发技术,在目前的情况是其实是比较PHP和Java的Web开发。以下是我就几个主要方面进行的比较:

一、 语言比较

    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就特别适合于做大型的企业级的应用。

二、 数据库访问比较

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

    PHP对于不同的数据库采用不同的数据库访问接口,所以数据库访问代码的通用性不强。例如:用Java开发的Web应用从MySQL数据库转到Oracle数据库只需要做很少的修改。而PHP则需要做大量的修改工作。

三、 系统设计架构比较

    采用Java的Web开发技术,需要使用的是面向对象的系统设计方法,而PHP还是采用面向过程的开发方法。所以用Java进行开发前期需要做大量的系统分析和设计的工作。

四、 跨平台性

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

五、 开发成本比较

    PHP最经典的组合就是:PHP + MySQL + Apache。非常适合开发中小型的Web应用,开发的速度比较快。而且所有的软件都是开源免费的,可以减少投入。

    Java的Web应用服务器有免费Tomcat、JBoss等,如果需要更好的商业化的服务有:Web Sphere和 Web logic。 #p#副标题#e#

六、 分布式多层架构比较

    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 秒。 

   

    项目              PHP                  JAVA

    可复用性         低                      高

    开发速度         快                      慢

    易维护性         差                      优

    可移植性         优-Linux            Windows、Unix

    安全性             低                      高

    开发费用         低                      高

    多层架构         差                      优

    数据库访问 接口不统一       接口统一

    可扩展性         差                      优

    面向对象         差                     优#p#副标题#e#

    综上所述,我个人认为,PHP适合于快速开发,中小型应用系统,开发成本低,能够对变动的需求作出快速的反应。而Java适合于开发大型的应用系统,应用的前景比较广阔,系统易维护、可复用性较好。还有,同样功能的系统用Java开发的系统要比PHP开发的系统的价格要高。
 

就我看后,作者对PHP的火热是有成见的,显然应该是一个对JSP熟悉远远多于PHP的JAVA/JSP程序员。

 

    我以一个从PHP3-PHP5十年接触PHP的程序员来对作者的几点进行一些补充或提出我的不同意见。

一、 语言比较:

    由于PHP本身就是面向脚本发展起来的,以快捷为目标,语法要求比较松散,所以PHP入门比较容易,但是PHP也注意到过于松散会造成PHP程序结构混乱,所以版本越高就越接近JAVA/net等语言方式,不同版本的PHP编程方式大不一样,有些函数在高版本中被淘汰,某些函数的参数与功能也有一点改变,也在加速吸收其它语言的优点和特征,造成现在的PHP程序大多兼有php3的面向过程/php4的面向类/php5的加强类混编的情况,比较混乱。应该说PHP会发展的越来越像JAVA。

    JAVA语言一开始就是打造面向多平台全功能语言发展的,所以虽然版本更新很多,但基本编程方式相对稳定,一开始就拥有一套比较完备的体系,但是JAVA语言入门相对难,很多应用术语多如牛毛,对入门者来说还没学就已经晕了,这点来说C#做得要比JAVA好。宠大JAVA体系对JSP对是一把双刃剑,即提供了充备的类库,也增加了语言的复杂性。

   总得来说,虽然PHP面向过程、HTML嵌入方式起家,但还是建议PHP的程序员尽量采用面向对象、HTML与PHP处理脚本分离的编程方式(很多不了解PHP的其它语言开发者往往以为PHP还是当初那种类似ASP的编程方式是不对的)。

二、 数据库访问比较:

    原文说,“Java通过JDBC来访问数据库”,“PHP对于不同的数据库采用不同的数据库访问接口,所以数据库访问代码的通用性不强”,这也是明显对PHP的误解,PHP已经有很多统一访问接口类库,如ABODB、DBLib及Pear的几个接口类库,PHP5更是提供PDO的数据库接口LIB。现在编写PHP数据读取程序,显然不应该再走从底层读取函数的方式,所以这一点是可以规避。

三、 系统设计架构比较:

   显然对于PHP表述是不对,把开发PHP程序看得过于简单,要开发成熟的PHP所考虑的系统分析和设计并不会比JAVA少,而且面向过程序开发方式,应该是属于PHP3时代,现在PHP越来越需要面向对象方式,否则绝对不是一个合格的PHP程序员。

四、 跨平台性:

   补充一点是,现在绝大数LINUX操作系统的HTTP服务器,均内置支持PHP。在主流WEB操作系统IIS/APACHE里部署PHP也很容易。

五、 开发成本比较:

   没什么好说,补充一点:PHP虚拟主机空间商比较多,价格也相对便宜。

六、 分布式多层架构比较:

   这个俺没有发言权。庞大的JAVA体系应该是强于PHP。

七、 源代码安全:

   呵呵,“Java开发的程序,最后用户拿到的是只是一些编译好的class类,无法看到完整的源代码,安全性高。”是值得商榷的,JAVA说白了也是类似C#的生成非WIN32的在虚拟机里运行的文件,反编译没有问题,可以采用的加密的方式也就类似C#的混淆编码。

  混淆编码这一点,PHP或其它脚本语言理论上都是可以实现的。并且PHP也有ZEND、eAccelerator、MMCache、XCache等编译器可以编译加密加速。虽然需要服务器安装相应解析程序,虽然ZEND低版本编译文件现在有反编译工具。另据说Phalanger-PHP可以让PHP运行在ASP.net平台上,当然就目前来说成熟性我还是值得怀疑。

八、性能比较:

   对于JSP比PHP快我是接受的,不过建议是不是用PHP经过ZEND(大多虚拟主机均提供支持)或eAccelerator编译后,与JSP读取MYSQL数据库的数据,再进行比较一下,差距多少。

 

   虽然兰州网站建设作为web的开发应用者,是站在建站的角度上的分析的,不过我的观点也可供JSP或其它脚本语言爱好者可以看到更多PHP语言的优缺点后再做比较。大家共同探讨。

 

阅读本文的人还可以阅读:

网站安全问题频出,企业该怎么办?

为什么会出现死链?

网站后台资料编辑流程

兰州网站建设总结建站经验:六点让整站素质提升

com域名和cn域名到期后多久删除可以重新开放注册?

域名到期或过期后能转入万网吗?

怎样在网站后台添加资料

跟你有关的 互联网+

购物网站建设需要注意什么

兰州网络公司做网站多少钱?

兰州seo专家手把手教您多个关键词优化的战胜秘诀

新站优化排名不稳定应该如何面对?

SEO网络安全手机网站手机网站费用营销型网站怎么做网站优化短信群发小程序怎么做软件开发流程兰州网站建设公司网站应该怎么做网站建设常见问题建立网站需要多少费用企业建站有哪些好处如何选择建站公司做手机站的好处做营销型网站的好处IPV4网站设计定制网站什么是营销型网站兰州营销型网站建设公司网络推广怎么做营销推广网站推广网站不收录怎么办兰州微信公众平台开发公司微信平台怎么注册微信平台类型有哪些兰州做微信的公司微信公众平台怎么注册微信公众号微信公众平台百度推广效果不好百度推广怎么做百度算法百度推广搜狗推广怎么做seo竞价排名400电话400电话怎么开为什么要开400电话软件开发OA系统

咨询热线:0931-8539889 / 8539789

电子邮箱:kefu@yejuzhi.com

总部地址:兰州市城关区雁北路1683之5号楼20层
     (兰州文理学院东侧海鸿居然之家)

路过公交:10路、82路、135路、124路、149路、

业聚质致力于兰州网站建设和兰州网络营销推广服务

扫码关注公众号!

专注网站建设兰州网站建设兰州网页制作兰州小程序开发兰州软件开发等服务。

行业百科知识|法律声明|网站地图|实用工具|付款方式|代理加盟

陇ICP备12000285号-3    甘公网安备62010002000075号    增值电信业务经营许可证:甘B2-20160020

Copyright©Yejuzhi All Rights Reserved 甘肃业聚质网络科技有限公司 版权所有亮照