比较PHP和JSP这两个Web开发技术.docx

上传人:b****0 文档编号:17987200 上传时间:2023-08-05 格式:DOCX 页数:25 大小:33.77KB
下载 相关 举报
比较PHP和JSP这两个Web开发技术.docx_第1页
第1页 / 共25页
比较PHP和JSP这两个Web开发技术.docx_第2页
第2页 / 共25页
比较PHP和JSP这两个Web开发技术.docx_第3页
第3页 / 共25页
比较PHP和JSP这两个Web开发技术.docx_第4页
第4页 / 共25页
比较PHP和JSP这两个Web开发技术.docx_第5页
第5页 / 共25页
比较PHP和JSP这两个Web开发技术.docx_第6页
第6页 / 共25页
比较PHP和JSP这两个Web开发技术.docx_第7页
第7页 / 共25页
比较PHP和JSP这两个Web开发技术.docx_第8页
第8页 / 共25页
比较PHP和JSP这两个Web开发技术.docx_第9页
第9页 / 共25页
比较PHP和JSP这两个Web开发技术.docx_第10页
第10页 / 共25页
比较PHP和JSP这两个Web开发技术.docx_第11页
第11页 / 共25页
比较PHP和JSP这两个Web开发技术.docx_第12页
第12页 / 共25页
比较PHP和JSP这两个Web开发技术.docx_第13页
第13页 / 共25页
比较PHP和JSP这两个Web开发技术.docx_第14页
第14页 / 共25页
比较PHP和JSP这两个Web开发技术.docx_第15页
第15页 / 共25页
比较PHP和JSP这两个Web开发技术.docx_第16页
第16页 / 共25页
比较PHP和JSP这两个Web开发技术.docx_第17页
第17页 / 共25页
比较PHP和JSP这两个Web开发技术.docx_第18页
第18页 / 共25页
比较PHP和JSP这两个Web开发技术.docx_第19页
第19页 / 共25页
比较PHP和JSP这两个Web开发技术.docx_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

比较PHP和JSP这两个Web开发技术.docx

《比较PHP和JSP这两个Web开发技术.docx》由会员分享,可在线阅读,更多相关《比较PHP和JSP这两个Web开发技术.docx(25页珍藏版)》请在冰点文库上搜索。

比较PHP和JSP这两个Web开发技术.docx

比较PHP和JSP这两个Web开发技术

比较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进行开发前期需要做大量的系统分析和设计的工作。

  PHP只能实现简单的分布式两层或三层的架构,而JAVA在这方面就比较强大,可以实现多层的网络架构。

数据库层(持久化层)、应用(业务)逻辑层、表示逻辑层彼此分开,而且现在不同的层都已经有一些成熟的开发框架的支持。

例如Struts就是利用java的Web开发技术实现了MVC的设计模式,而在业务逻辑层也有Spring框架,数据库持久化层有Hibernate等框架。

这些框架可以方便开发者高效、合理、科学得架构多层的商业应用。

  分层是将系统进行有效组织的方式,分而治之的思想是计算机领域中非常重要的思想。

在好的分层思想引导下,便能实现“高内聚、低耦合”,也能将具体的问题割裂开来,易于控制、易于延展,更易于分配资源。

PHP只能实现简单的分布式两层或三层的架构,而JAVA在这方面就十分强大,可以实现多层的网络架构。

运用MVC的设计模式,可具有更加高效、合理的系统架构。

使得系统在可拓展性、需求应变性上更好的适应,而且项目越复杂,其优势越明显。

  四、跨平台性

  Java和PHP都有很好的跨平台的特性。

几乎都可以在不作任何修改的情况下运行在Linux或者Windows等不同的操作系统上。

  五、开发成本比较

  PHP最经典的组合就是:

PHP+MySQL+Apache。

非常适合开发中小型的Web应用,开发的速度比较快。

而且所有的软件都是开源免费的,可以减少投入。

  Java的Web应用服务器有免费Tomcat、JBoss等,如果需要更好的商业化的服务有:

WebSphere和Weblogic。

  六、源代码安全

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

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

如果非要将PHP和JAVA在安全性上做个比较的话,同一个小偷光顾PHP那是随便拿来随便改,想拿什么拿什么,拿的高兴还能大笔一辉某某到此一游。

而光顾JAVA的时候,便会发现警察把守,内设自动报警装置,即便突破重重阻扰后进入居室。

那值钱的东西都放在加密后的保险柜中,只能望洋兴叹、铩羽而归。

  七、性能比较

  有人做过试验,对这两种种语言分别做回圈性能测试及存取Oracle数据库测试。

  在循环性能测试中,JSP只用了令人吃惊的四秒钟就结束了20000*20000的回圈。

而PHP测试的是2000*2000循环(少一个数量级),却分别用了63秒。

  数据库测试中,二者分别对Oracle8进行1000次Insert,Update,Select和Delete:

JSP需要13秒,PHP需要69秒。

 

项目

PHP

JAVA

可复用性

开发速度

易维护性

可移植性

优-Linux

Windows、Unix

安全性

开发费用

多层架构

数据库访问

接口不统一

接口统一

可扩展性

面向对象

八、网站数量:

世界有70%以上网站都是用PHP开发的。

安全性保密性较高的大型商用企业主用JAVA。

Java开发分布式大型系统:

l金融机构大系统

l工商银行

l手机软件

l阿里巴巴

l支付宝

l易趣(java为主)等

PHP开发网站:

l淘宝网

l前程无忧(51job)

lMySQL官方网()

lPHP官方网()l等

多语言混合使用的网站:

l搜狐(JAVA、PHP)

l新浪(JAVA、PHP和CGI)等

从整体来说,PHP适用于中小型系统,而JAVA适用于大型系统。

PHP能够将单一的事件做好,但却不适合完成集成度较高的多项并发事件。

为什么说PHP适合中小型系统而不适合做大系统呢?

首先,PHP缺乏多层结构支持。

而对于大型的系统负荷站点,只能采用分布计算。

将数据库、应用逻辑层和表示逻辑层彼此分开,并将同层的根据流量分开,而PHP恰恰缺乏这种支持。

其次,PHP提供的数据库接口不统一,要将多个不同的数据库数据统一需要花费很大的力气。

而JAVA则没有这种缺陷,可通过SUNJAVA的JAVAClass和EJB获得规模支持,通过EJB/CORBA以及众多厂商的ApplicationServer获得结构支持。

如ProBIZ的Merchantone电子商务软件产品系列。

如果将PHP比作将才,具备独挡一方的能力。

那么JAVA便是帅才,具有较好的前瞻性和拓展性,整体布局和协同能力强。

综上所述,PHP适合于快速开发,中小型应用系统,开发成本低,能够对变动的需求作出快速的反应。

而Java适合于开发大型的应用系统,应用的前景比较广阔,系统易维护、可复用性较好。

还有,同样功能的系统用Java开发的系统要比PHP开发的系统的价格要高。

 

PHP是一种解释执行的脚本语言,语法和C语言类似,易学易用,不懂电脑的非专业人员稍经学习也能使用PHP.而Java要先编译成Class文件,然后在Java虚拟机上执行,Java开发需要熟悉Java语法以及一些核心的架构,从而实现一种可复用的、跨平台的软件,Java比PHP要难学的多。

  实际上,从技术架构来说,Java语言相比PHP有明显的优势,Java使用的是面向对象的系统设计方法,而PHP还是采用面向过程的开发方法。

PHP只能实现简单的分布式两层或三层的架构,而JAVA可以实现多层架构。

数据库层(持久化层)、应用(业务)逻辑层、表示逻辑层彼此分开,而且现在不同的层都已经有一些成熟的开发框架的支持。

例如Struts就是利用Java的web开发技术实现了MVC的设计模式,而在业务逻辑层也有Spring框架,数据库持久化层有Hibernate等框架。

这些框架可以方便开发者高效、合理、科学得架构多层的商业应用。

从数学运算和数据库访问速度来讲,Java的性能也优于PHP.实际上,对于跨平台的大型的企业应用系统来讲,Java几乎已经成为唯一的选择(微软.NET不支持跨平台),但是在于Web网站应用开发来讲,Java却面临着被PHP边缘化的危险,几乎所有的虚拟主机都支持PHP+MySQL,而支持Java的却少之又少,在资源上,网上有不计其数的PHP资源,很多著名的大型网站(例如Facebook、Mediawiki等)都是基于PHP的,而成功的Java网站却寥寥无几,这又是什么原因呢?

  Java的理念是“一次编写,到处运行”,Java在应用框架底下的架构是无与伦比的,远胜过其他任何语言,Java的框架利于大型的协同编程开发,系统易维护、可复用性较好。

而PHP很容易自学,让热备能快速简洁地编写代码,适合于快速开发,中小型应用系统,开发成本低。

在调试、发布上,PHP也较Java简单。

  理念上的不同导致了Java和PHP在Web应用开发上显示了不同的结果,尽管Java的数学计算和数据库访问都有优势,架构也相当完美,但是PHP却可以简单轻松地支持高强度Web访问,能够快速开发应用,支持PHP的虚拟主机多如牛毛,使得用PHP开发一个网站比用Java开发一个网站要快得多,容易的多。

Java所拥有的优点只适合传统的以软件项目为核心的开发模式,而PHP更适合于以客户为核心的SaaS的开发模式,因此,PHP目前在Web网站开发的优势完全是因为Web网站开发的特殊性而导致的,并非编程语言特性所决定。

-------------------------------------------------------------------------------

大家现在有一个误区应该走出来,到今天了别把php,jsp,asp混为一谈。

web程序的发展第一阶段是

静态的html,由于静态画面维护起来特别不方便,更新也非常麻烦,页面的表现力估计比txt强也强不多少。

于是为了动态表示html出现了cgi

也就是说cgi是web发展的第二阶段。

cgi的问题是所用的语言不是面向web开发的,如c等。

cgi无非就是运行在服务器的一个程序与网络传输关系不大。

这种cgi对于每个请求都会启动一个进程,很容易就把服务器搞崩溃。

于是cgi淡出了历史舞台于是乎web进入了asp,jsp,php时代,asp,jsp,php争了这么多年,说实在的都是一个熊样,基于http协议的动态网页,其实就是写法不同都是一个意思。

效率也分不出谁高谁低。

asp,jsp,php时代暴露出的问题就是,用此类语言很难开发大型的商业网站,由于结构不分明造成了无法分散开发,只能做一些小规模的项目。

对于现在10000人月以上的项目几乎没法顺利进行。

于是jsp,asp分别靠j2ee,.net变成了针对企业级应用开发的技术。

而php依然走其老路线~

发展到今天的这种局面,可谓这三种生命力极强的语言有着各自的特色。

j2ee提出了一个伟大的构想吸引了大批的java爱好者开发出了各种开源资源,使开发越来越方便。

asp有微软用.net框架支撑着。

php则很有趣,你可以选择很好的一个模板然后用php稍加改造就成了一个应用,也就是说php继续沿袭着jsp,asp时代的老路把它发扬光大。

说到这儿来比较吧,有人说jsp不就是来做web的吗,是啊!

是来做web的,你用10年前的技术做web很有趣吗?

有了j2ee,.net可以说jsp,asp已经给php让路了,在这个级别上谁也斗不过php。

但是如果用到企业级应用,及业务流,工作流复杂的大型商网的开发,没有那个公司会投资几千万去用php做的。

明白了么,这就是php的死穴。

再说我为啥不喜欢.net尽管我做了3年,在我职业生涯中使用最长的技术我却始终对之不屑。

因为首先开发工具就要钱,然后插件要钱,相配套的db大多用sqlserver吧要钱,服务器用windowsserver版吧,操作系统超级贵。

谁愿意吹捧这种自私的技术呢。

回头看看j2ee和php尤其是j2ee他是由喜欢技术喜欢java的人来支持的,几乎都是开源,你想学习就学习,你想商用就商用,一切都是哥为你服务的态度。

为啥不喜欢java呢?

php也大多数都是开源的,我下一步就要研究一下这个为百姓造福的语言。

据说cakephp不错,我准备做点儿东西。

说的太多了,言多必失,本人工作仅5年多一点,没有那么多的经验和阅历,自己写写体会而已。

我只想说,现在流行的技术一定有它的道理,比较本身就没啥意义。

最简洁的答案就是各有千秋~

但每个人心里都有一杆失准的秤,偏向某一方。

但是我觉得单纯的asp,jsp可以退休了,原因是没用!

要比较请比较php,j2ee,

随着所谓WEB2.0时代来临,程序员从来没有象今天那样受人注意,很多程序员对于语言的争论也从来没有象今天这样剧烈,Java、C++、PHP、ASP等等,最近又出来一个Ruby,加上Python。

无数的FANS在中间进行争论不休,也就是在internet上,如果是在现实生活中,大概会象《倚天屠龙记》里描述的那样,会决战光明顶来定一个胜负,或者说定出天下第一大门派。

     人民群众是很爱戴PHP的。

至少在我看来。

没接触过PHP项目,但是身边的PHP项目越来越多,虽然都是小公司,还听说PHP很火,500W招高级PHP程序员--不知道是不是那CEO前一天晚上洗澡脑子进了水,或者薪水是越南盾之类的~

     偶在GoogleGroups上转,想找到说服自己的答案,找了很多developer问,PHP、ASP与Java,他们之间谁更好?

Generallyspeaking,theywouldsay,ASPout,Microsoft出的垃圾,PHPandJavaaregoodchoice,Java适合做大项目,PHP适合做一些短平快的东西。

的确,世界上最大的C2CeBAY,就是用Java的,中国最大的社区ChinaRen校友录也是Java---而很多小的网站,初期都是PHP,后来各种原因都必须改到Java上面去。

     这种感觉就是像说,如果你想学武功以便出去砍人,或者说在江湖扬名立万,那么军体拳你就不用练啦,这个东西是GOV拿出来强身键体的,五虎断门刀这个东西你用来对付一般的流氓是绰绰有余,但是碰到绝顶高手你就歇了。

而Java有点象太极拳,当今武林最大的门派之一SUN的首推武功,是对负高手的不二选择,于是很多人就认定:

PHP是低等武功,练到最好的结果也就是给赌场看看场子,只有练就Java才能做武林盟主。

     看网上说,很多人都有这种心理,他是使用Java的,而你如果让他写PHP,,很多人会有一种受到侮辱的感觉,不是觉得经理不重视他,就是在想自己什么时候得罪了经理,竟然被发配到PHP这种偏远的小地方去了。

越是大公司,PHP的项目越难开展起来,这个让很多技术leaders很是郁闷,但也很是奇怪。

所以,下面,咱们一起分析一下形成这种被人民群众认可,却不被很多开发人员看好的语言——PHP。

PHP进入中国是98,99年,进入的时候,初期应用的典型是Chinaren校友录,还有很多的互动应用,它以开发方便,容错性好,迅速成为很多网站的选择。

到了00,01年,互联网泡沫的时候,很多都是PHP完成对网站的开发,它的流行有以下几个原因:

∙兼容C的语法,容易掌握

就这一点来说,它保证了开发人员的稳定来源,基本上说,每个学计算机的人员,没有不学习C语言的,所以都能在一到两周左右快掌握这个新的语言,然后经过简单的指导,就能开始初期的开发工作。

单从程序本身的开发而言,写了三年以上的程序员,和开发了半年以上的PHP程序员差别不是太大。

∙运行的快速

在网路上面,速度是很重要的问题,这一点来说及时是对PHP非常不屑的人也不得不承认PHP得运行速度还是比较令人满意的,只不过由于没有很实际的数据,只是很多人感觉,所以这一点来说,没有非常有力的证据证明。

∙非常强的容错,很好的鲁棒性能(鲁棒性要强调下,前几天同学问我什么是鲁棒性,因为人脸识别这块很多这个词,我想破头都没想出来,后来才知道是robustness,郁闷至极,这是经常碰到的单词,但没想到是这样翻译)

很多写PHP的人员应该有这个感觉,举个例子,你申请一个PHP中的变量,做数字也行,做数组也行,做字符串也可以。

我有时候都在想,这么随意的风格,他是如何保证效率的,只能说写这个语言编译器的人实在太不可思议了。

∙丰富的函数和简单的操作

能想到的一些操作,如果不是太罕见,你基本都能找到函数库来解决,典型的就是读文件的内容读到一个变量,到现在为止,我知道的好像只有PHP提供一个专门的函数来解决这个问题

以上四个特点,用PHP开发程序非常得普遍,但作为程序来说,这些看起来非常不错的特征也形成PHP的一些问题,造成在很多资深的程序员对其评价很低。

     首先第一条,也是让很多资深的程序员对其尴尬不已的,做了3年以上的PHP程序员,当一个初学者问其一些技巧的时候,他们突然发现,PHP这种语言实在是没有好说的,看它的帮助就能解决问题或者看一下教程。

不像Java,一个仅仅写了半年左右的Java开发人员和3年以上的Java开发人员可以说有本质的区别,后者可以讲很多JAVA的开发架构和分布问题,讲的那个菜鸟满脑浆糊,满脸崇拜。

     第二条还是效率的问题。

市面上对于WEB语言的效率,PHP快只是感觉,并没有一个非常有力的测试证明它比别的语言快很多,而JAVA和ASP却有一个非常有名的一个测试性能比较。

     有人做过试验,对这三种语言分别做循环性能测试。

在循环性能测试,JSP用了20000*20000的循环?

共四秒钟。

而ASP、PHP测试的是2000*2000循环(少一个数量级),分别用了63秒。

PHP测试的是2000*2000循环84秒。

     一个有意思的测试,说明一个问题,对于大量的运算,PHP看起来不是一个太成功的语言,这个也是很多高手不是很看好PHP的一个实际例证明,然而实际是这个仅仅是一个有点BT的测试,谁会在互联网上写一个循环400万次循环以上的一次请求应用。

实际上,在WEB应用中这种循环或者说密集的运算非常罕见,如果有,首先该考虑的也是算法的优化,减少循环的次数,然后才是考虑语言本身。

并且就算是必要的,也不是Java、PHP和ASP能够解决的,这个时候,如果用的比较多,C会粉墨登场,再多一点,可以使用汇编,非常多的情况下,芯片的设计我想是比较好的选择,怎么样都不会轮到Java这种语言,所以用这种方法来评价PHP是非常不妥的。

而对于PHP开发中较好的鲁棒性(再次寒一下),你怎么写它都能运行,并且很稳定,从而也造成PHP程序员的散漫,程序的开发非常随意,又加上中国互联网产品开发的紧急性,几乎都没有很好的文档,从而后期PHP程序的维护成为无数项目经理的噩梦。

这一点也是很多高手或者说资深程序员对于PHP评价很低的地方,而当很多项目经理需要要规范开发的时候,却又发现无从规范起,Java有Struts、MVC……而PHP却缺乏成体系的开发架构,从而也成为PHP很难成为企业应用系统的选择。

至于丰富的函数操作,这个大概是唯一没有被人诟病的地方,但是Java、ASP以及Perl都有很丰富的函数,PHP在这一点没有非常大的优势,所以只是成为人们选择它的一个不是很重要的理由。

本测试数据真实,但只做为参考。

欢迎大家讨论。

  除做比较外,也可供PHP,JSP程序员参考,以便优化自己的程序。

  一.算术运算

  a.测试标准

  循环N次,并做整型自加运算。

  b.测试

  测试代码:

测试类型

JSPint整型

JSPlong整型

JSPlong整型2

PHP

PHP2

测试代码

inti=0;

while(i

{

i++;

}

longl=0;

while(l

{

l++;

}

longl=0;

while(l

{

l=l+1;

}

$i=0;

while($i

{

$i++;

}

$i=0;

while($i

{

$i=$i+1;

}

  测试结果(单位:

毫秒)

  测试结果说明:

m-n表示主要波动范围介于m和n之间;n表示出现次数非常之多的数值或平均值,m(x,y)表示偶尔会出现x,y。

以下相同。

XXXX取值

JSPint整型

JSPlong整型

JSPlong整型2

PHP

PHP2

1000

0

0

0

0-1

0-1

10000

0

0

0

3-4

6-7

100000

0

0

0(16,32)

34-35

51-52

1000000

0(10)

0(16,32)

0(16,32)

348-368

527-534

10000000

0(13)

16-32

32-78

3547-3585

5239-5390

100000000

0(16)

266-281

265-281

35309-35486

1000000000

0(16,743)

2625-2676

2203-3687

  c.结论

  Java的算术运算,优化得很好,估计是直接的对应CPU的指令,数值再大,算术运算性能都很平稳。

  需要注意的是,long的运算时间要比int的运算时间要长一些(毕竟是32位的系统),所以,在无需用到long时,尽量不要用long,而用int.

  PHP是弱类型的变量,算术运算很不尽人意,估计不是直接对应机器码的算术运算。

  PHP算术运算的过程猜测如下,在运算前需要检测变量是否是数值,并要将非数值转换成数值,比如,PHP可以做这样的运算:

100+"zhoutang",结果等于100.正是因为是弱类型语言,加上运算前的检测和转换,所以才导致算术运算的性能低下。

  PHP的单次运算时间比较稳定,大概每10000次算术加运算花费的时间约为3.5ms

  不同的运算方法,也对性能有影响。

  二.字符串运算

  a.测试标准

  字符串连接运算对比。

  b.测试

  测试代码:

测试类型

JSP

PHP

测试代码

Stringstr="";

while(str.length()

{

str+="a";

}

$str="";

while(strlen($str)

{

$str.="a";

}

  测试结果(单位:

毫秒)

XXXX取值

JSP

PHP

1000

0-16

1

10000

656-703

9-10

100000

105078-105235

95-103

  c.结论

  Java的字符串是用对象处理,很明显,在字符串的比较过程中,Java比PHP差很远。

(因为字符串操作,很大部分要做连接,这里只比较连接运算,另外粗略比较了一下substring,两者的差别不是很大)

  PHP的字符串运算,估计很多是直接调用C的字符串函数,所以效率会高很多。

  在做WEB开发中,字符串的连接操作还是很频繁的(包括很多时候生成SQL字符串),所以,在算术运算和字符串运算两个方面,Java(

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 小升初

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2