其实哪个好,关键在於写程序的人的功力好坏,所以没有谁好谁不好! 但还是有些使用需求的选择来决定使用那种工具语言。如果你想要找资源丰富、唾手可得的现成软件,那 PHP 便可以选择,且建构环境也可较容易得到支援,开发也较容易迅速。 如果你的需求可能是需要应付C10K问题(即「在同时连接到服务器的客户端数量超过10000 个的环境中,即便硬件性能足够, 依然无法正常提供服务」),那 JSP 便是不错的选择! PHP 或 JSP 都是从 C 语言发展出来的,所以语法大同小异,最大差别在后端的服务器环境,而速度快慢也不是简単区分出来,主要还得看应用的模式。 所以简言之,在客户端有近 10K 人次同时对系统作处理请求时,使用 PHP 一定无法应付!但客户端没那么多人次(数十或数百)同时对系统作处理请求,其实 PHP 效率不会输给 JSP。 PHP 与 JSP 也可以依不同应用而搭配使用,不见得只能选其一,我个人特别喜爱把 JSP 用来开发 API 使用,但 Web UI 则以 PHP 为主。能够善用工具者,才是真正的大赢家!
PHP PHP(HypertextPreprocessor)是一种嵌入HTML页面中的脚本语言。它大量地借用C和Perl语言的语法, 并结合PHP自己的特性,使Web开发者能够快速地写出动态产生页面。 PHP是完全免费的开源产品,不用花钱,Apache和MYSQL也是用样免费开源,在国外非常流行,PHP和MYSQL搭配使用,可以非常快速的搭建一套不错的动态网站系统,因此国外大多数主机系统都配有免费的APACHE+PHP+MYSQL。通常认为这种搭配的执行效率比IIS+ASP+ACCESS要高,而后者的使用还必须另外交钱给微软。 PHP的语法和Perl很相似,但是PHP所包含的函数却远远多于Perl,PHP没有命名空间,编程时候必须努力避免模块的名称冲突。一个开源的语言虽然需要简单的语法和丰富的函数,但PHP内部结构的天生缺陷导致了PHP不适合于编写比中小型业余网站更大的网站。JSP(JavaServerPages)是Sun公司推出的一种动态网页技术。JSP技术是以Java语言作为脚本语言的,熟悉JAVA语言的人可以很快上手。 JSP本身虽然也是脚本语言,但是却和PHP、ASP有着本质的区别。PHP和ASP都是由语言引擎解释执行程序代码,而JSP代码却被编译成Servlet并由Java虚拟机执行,这种编译操作仅在对JSP页面的第一次请求时发生。因此普遍认为JSP的执行效率比PHP和ASP都高。 JSP是一种服务器端的脚本语言,最大的好处就是开发效率较高,JSP可以使用JavaBeans或者EJB(EnterpriseJavaBeans)来执行应用程序所要求的更为复杂的处理,但是这种网站架构因为其业务规则代码与页面代码混为一团,不利于维护,因此并不适应大型应用的要求,取而代之的是基于MVC的Web架构。MVC的核心思想是将应用分为模型、视图和控制器三部分。模型是指应用程序的数据,以及对这些数据的操作;视图是指用户界面;控制器负责用户界面和程序数据之间的同步。通过MVC的Web架构,可以弱化各个部分的耦合关系,并将业务逻辑处理与页面以及数据分离开来,这样当其中一个模块的代码发生改变时,并不影响其他模块的正常运行,所以基于MVC的Web架构更适应于大型应用开发的潮流。 因此,不少国外的大型企业系统和商务系统都使用以上的MVC架构,能够支持高度复杂的基于Web的大型应用。 结论:JSP对于网站开发来讲不像PHP那样易学易用,支持JAVA的主机也少于支持PHP的主机,这从一定程度上限制了Java技术在网站上的发展,不过在企业软件应用上来讲,MVC还是拥有相当大的优势的,虽然其配置和部署相对其他脚本语言来说要复杂一些,但对于跨平台的中大型企业应用系统来讲,基于JAVA技术的MVC架构几乎成为唯一的选择。
jsp这是个很大的整套解决方案,常用来代指view层的jsp【允许其他的页面展示,甚至不是jsp】,Model的hibernate,ibatis,Controller层面的struts,spring【这两个可不仅仅是controller,这两个可以统筹全局】这一套整体。php嘛,分的就不那么清楚,他追求的是简单快捷,做个人应用和一些简单的商业应用非常棒,这是jsp+struts/sping+hibernate/ibatis无法匹敌的,但是企业级综合应用,php能不能做都是个问题。总结一下:基本应用,几乎一样;高级应用,各有专攻。
php目前的市场份额不是很好,但是在上涨且很慢,相对于JSP/ASP而言他就是太简单了,就是没有接触过编程的人很快也会上手,这是他最大的优点。缺点,安全性能方面,jsp的安全性最高,性能比较:有人做过试验,对这三种语言分别做回圈性能测试及存取 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。它们都是通过CGI来提供支持的。但去年10月后它推出了Enfinity,一个采用JSP/Servlet的电子商务 Application Server,而且声言不再开发传统软件
关于ASP ASP 由于其简单功能实用等方面受到广大朋友的喜欢,再加上MS的强有力支持,可以说是时下作站点最为流行的语言之一,他借助MS的Com+ 技术,几乎可以实现在C/S 能够实现的所有功能,可以说确实具有相当的竞争力。ASP的代码实现也很简单,MS 提供的InterDev 在RAD 的基础上,使ASP 的开发一夜之间火遍了大江南北。但是他的缺点是,由于MS 长久以来的霸道作风,他只能运行在MS的平台上,因此在关键性的应用上使人难以轻易接受。 关于JSP JSP 是Sun公司推出的新一代站点开发语言,他完全解决了目前ASP,PHP的一个通病--脚本级执行(现在PHP4 也已经在Zend 的支持下,实现编译运行).Sun 公司借助自己在Java 上的不凡造诣,将Java 从Java 应用程序 和 Java Applet 之外,又有新的硕果,就是Jsp--Java Server Page。Jsp 可以在Serverlet和JavaBean的支持下,完成功能强大的站点程序。 据我所知,JSP基于Java,因此Java程序员可以轻松开始编码。ASP只是一个一般的引擎,具有支持多种语言的能力,不过默认的并且是最常用的还是VBScript。mod_perl与Perl一样强大,只是更快一些。 对于ASP、JSP、PHP等,到底哪种语言更好?不同的人有不同的看法。不过有一点我们必须要明确的:对于ASP、JSP等,你是否清楚购买它们会有多昂贵以及它们需要多么昂贵和强大的硬件。如果你有什么中立的观点(比如说没有被SUN和Microsoft的百万美金所影响),请顺便通知我。 关于PHP PHP 是秉承Linux 的GNU 风格,借助与源码公开,使他迅速成为世界上目前应用最为广泛的站点制作语言之一。借助与C++的形式,引用类的概念,使得代码的可重复性应用便的异常简单。加上他和Linux,Apache 和MySql 的紧密配合,关键性的应用也没有问题(有名的Sina就 是采用Php)。同时,PHP第四代Zend(PHP4)的核心引擎正式版也已经发布了,整个程序的核心得到了大幅度的改进,让PHP程序的执行速度变得更快。PHP在最佳化之后的效率,已比传统CGI或者ASP等程序有了更好的表现。而且正因为PHP是免费的,因此任何人都可以访问PHP WEB站点,下载完整的源代码。更重要的是:用PHP编写的代码执行起来会更快,能实现同样功能的PHP代码,不用改变就可以在不同的WEB服务器上、不同的操作系统下运行。就凭这一点,你就已经有足够的理由选择PHP。
ASP全名Active Server Pages,是一个WEB服务器端的开发环境,利用它可以产生和执行动态的、互动的、高性能的WEB服务应用程序。ASP采用脚本语言VBScr ipt(Java script)作为自己的开发语言。 PHP是一种跨平台的服务器端的嵌入式脚本语言。它大量地借用C,Java和Perl语言的语法, 并耦合PHP自己的特性,使WEB开发者能够快速地写出动态产生页面。它支持目前绝大多数数据库。还有一点,PHP是完全免费的,不用花钱,你可以从PHP官方站点(http: //www.php.net)自由下载。而且你可以不受限制地获得源码,甚至可以从中加进你自己需要的特色。 JSP是Sun公司推出的新一代网站开发语言,Sun公司借助自己在Java上的不凡造诣,将Java从Java应用程序和Java Applet之外,又有新的硕果,就是JSP,Java Server Page。JSP可以在Serverlet和JavaBean的支持下,完成功能强大的站点程序。 三者都提供在 HTML代码中混合某种程序代码、由语言引擎解释执行程序代码的能力。但JSP代码被编译成 Servlet并由Java虚拟机解释执行,这种编译操作仅在对JSP页面的第一次请求时发生。在ASP 、PHP、JSP环境下,HTML代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。普通的 HTML页面只依赖于Web服务器,而ASP 、PHP、JSP页面需要附加的语言引擎分析和执行程序代码。程序代码的执行结果被重新嵌入到HTML代码中,然后一起发送给浏览器。ASP 、PHP、JSP三者都是面向Web服务器的技术,客户端浏览器不需要任何附加的软件支持。
要想做搜索引擎优化,首先把首页动态网站静态化,其实还是动态网站,但利用一个软件就能做到.现在很多网站都是这种做法,好处有三个:1.搜索引擎更容易接受静态的网站;2.节省空间;3.安全(现在的公司网站有80%的都存在不同程度的漏洞,容易让人钻空子! 您的网站是个数据库网站,做数据库的时候,不要用ACCESS,最次也要用SQLSERVER,但要在数据库安全方面要做到最好,这个做网站的程序员得认识到!(比如:数据库名要尽量复杂,太简单了容易让人给猜到,数据库文件要放到一个别人猜不到的文件夹,别放成这样(/admin/data/abc.mdb)这就容易让别人把你的数据库给下载到本地,然后你想会发生什么事呢?!再次,密码设置要安全,别太简单.也别都用数字,因为都是数字的密码,即使你的密码是MD5 32位加密,也很容易让人破解掉.还有很多,且不说了.)至于你要做个PHP的还是JSP的,只要将安全做好了,哪个都行.ASP的也没有问题.重要的是您的网站安全做的如何...要说ASP PHP JSP三种哪个是最好的话,可以这么说: JSP要比PHP高级,PHP要比ASP高级. 做JSP网站是未来互联网发展的方向.如果您的公司是个中等或大点的公司,最好做个JSP的.要是资金有限的话就做个PHP的.ASP的嘛,要是做在线定单类网站就别用了,不然过两年迟早要淘汰,而且不好维护和升级.记得要把网站各个方面工作(建设,优化,推广)都作好了再传上去.网站传上去后马上做推广,让的人知道您的网站,从各个位置带来潜在客户,让搜索引擎第一印象对你的网站更深刻.她会再短期内重新访问你的网站的.要是拿一个不成气候的网站给传上去的话,那引擎检索一次后,半个月,一个月也不会再去的。那可是钱啊!呵呵.
要看做什么,php语言比较灵活一点,属于入门容易,但是想提升有点困难。很多东西是要自己写的,包括php模板引擎,框架之类的,别人写的可能不太符合这个项目要求,很多情况要自己写。java不像php这种弱语言类型。规范比较严格,但是像做金融这一块的话,要求是java+oracle。至于原因在此就不多说了。相比较而言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应用服务器免费的有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是解释执行的服务器脚本语言,首先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。 六、 分布式多层架构比较 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开发的系统的价格要高