phpaspjsp比较
A. php,jsp,asp三者优缺点...
php优点
1. 跨平台,性能优越,跟Linux/Unix结合别跟Windows结合性能强45%,并且和很多免费的平台结合非常省钱,比如LAMP(Linux
/Apache/Mysql/PHP)或者FAMP(FreeBSD/Apache/Mysql/PHP)结合,或者数据应用够大可以考虑换
PostgreSQL或者Oracle,支持N种数据库。(N >= 10)
2. 语法简单,如果有学习C和Perl的很容易上手,并且跟ASP有部分类似。有成熟的开发工具,比如NuPHPed,或者Zend
Studio等等,再Linux平台下可以使用Eclipse等等。
3. 目前主流技术都支持,比如WebService、Ajax、XML等等,足够应用。
4. 有比较完整的支持,比如使用ADODB或者PEAR::DB做数据库抽象层,用Smarty或者smart template做模板层,如果是PHP
5.1的话,还能够使用PDO(PHP Data Object)来访问数据库。
5. 有很多成熟的框架,比如支持MVC的框架:phpMVC,支持类似ASP.net的事件驱动的框架:Prado,支持类似Ruby On
Rails的快速开发的框架:Cake等等,足够满足你的应用需求。
6. PHP 5已经有成熟的面向对象体系,能够适应基本的面向对象要求。适合开发大型项目。
7. 有成熟的社区来支持PHP的开发。
8.
目前已经很多大型应用都是使用PHP,比如淘宝网、Yahoo、163、Sina等等大型门户,很多选用PHP来作为他们的开发语言,所以大型门户都能够选用它,我想足够能够你的使用了。
9. 有很多开源的框架或开源的系统可以使用,比如比较知名的开源框架有Zend
Framework、CakePHP、CodeIgniter、symfony等,开源论坛有Discuz!、Phpwind等,开源博客
WordPress,开源网店系统如Ecshop、ShopEx等,开源的SNS系统如UCHome、ThinkSNS等。
php缺点
1.对多线程支持不太好,大多数时候我们只能简单的模拟去实现的。
2.语法不太严谨,比如变量不需要定义就可以使用,在c,java,c++中变量是必须先定义以后才可以使用的。
3.也许有经验的PHP程序员最感到痛苦的地方是PHP的解释运行机制。这种运行机制使得每个PHP页面被解释执行后,所有的相关资源都会被回收。也就是说,PHP在语言级别上没有办法让某个对象常驻内存。在PHP中,所有的变量都是页面级的,无论是全局变量,还是类的静态成员,都会在页面执行完毕后被清空。以JSP为例,在JSP中,Java
Bean的scope有四种有效值:Page、Application、Session、Request,分别对应页面、程序、会话、请求四种生存期。但在PHP中,只有Page一种生存期。
JSP的优势
(1)一次编写,到处运行。在这一点上Java比PHP更出色,除了系统之外,代码不用做任何更改。
(2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP/PHP的局限性是显而易见的。
(3)强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。
(4)多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。
JSP的劣势
(1) 与ASP一样,Java的一些优势正是它致命的问题所在。正是由于为了跨平台的功能,为了极度的伸缩能力,所以极大的增加了产品的复杂性。
(2)
Java的运行速度是用class常驻内存来完成的,所以它在一些情况下所使用的内存比起用户数量来说确实是“最低性能价格比”了。从另一方面,它还需要硬盘空间来储存一系列的。java文件和。class文件,以及对应的版本文件。
ASP的特点:
1、任何开发工具皆可发展ASP
只要使用一般的文书编辑程序,如Windows记事本,就可以编辑。当然,其他网页发展工具,例如,FrontPage Express、
FrontPage等也都可以;不过还是建议你用记事本来写,既省钱又方便,若是使用那些所见即所得的网页编辑来写ASP,可能会发生一些意想不到的离奇状态。
2、通吃各家浏览器
由于ASP程序是在网络服务器端中执行,执行结果所产生的HTML文件适用于不同的浏览器。
3、语言相容性高
ASP与所有的ActiveX Script语言都相容,除了可结合HTML,VBScript、Java Script、Active
X服务器组件来设计外,并可经由“plug-In(外挂组件模组)的方式,使用其他厂商(Third Party)所提供的语言。
4、隐密安全性高
如果我们在浏览器中直接查看网页的原始代码,就只能看到HTML文件,原始的ASP程序代码是看不到的!这是因为ASP程序先于网站服务(Web
Server)端执行后,将结果转换成标准HTML文件,再传送到客户端(Client)的浏览器上,因此,我们所辛苦撰写的ASP程序并不会轻易地被看见进而被盗用。
5、易于操控数据库
ASP可以轻易地通过ODBC(Open Database
Connectivity)驱动程序连接各种不同的数据库,例如:Acess、Foxpro、dBase、Oracle等等,另外,ASP亦可将“文本文件”或是”Excel”
文件当成数据库用。
6、面向对象学习容易
ASP具备有面向对象(Object-Oriented)功能,学习容易,ASP提供了五种方便能力强大的内建对象:Request、Response、Sever、Application以及Session,同时,若使用ASP内建的“Application”对象或”Session”对象所撰写出来的ASP程序可以在多个网页之间暂时保存必要的信息。
B. Asp、Php、Jsp区别
ASP全名Active
Server
Pages,是一个WEB服务器端的开发环境,利用它可以产生和执行动态的、互动的、高性能的WEB服务应用程序。ASP采用脚本语言VBScript(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的支持下,完成功能强大的站点程序。
ASP.NET
ASP
最新的版本
ASP.NET
并不完全与
ASP
早期的版本后向兼容,因为该软件进行了完全重写。早期的
ASP
技术实际上与
PHP
的共同之处比与ASP.NET
与
PHP的共同之处多得多,ASP.NET
是用于构建
Web
应用程序的一个完整的框架。这个模型的主要特性之一是选择编程语言的灵活性。ASP.NET
可以使用脚本语言(如
JScript、VBScript、Perlscript
和
Python)以及编译语言(如
VB、C#、C、Cobol、Smalltalk
和
Lisp)。新框架使用通用的语言运行环境
(CLR);先将您语言的源代码编译成
Microsoft
中间语言代码,然后
CLR
执行这些代码。
这个框架还提供真正的面向对象编程
(OOP),并支持真正的继承、多态和封装。.NET
类库根据特定的任务(例如,使用
XML
或图像处理)组织成可继承的类。
除了编程语言和方法之外,当您用
ASP.NET
编程时,可以用
ODBC
来集成数据库;ODBC
提供了一组一致的调用函数来访问您的目标数据库。
优势和弱点:
ASP.NET
的优势很明显在于它简洁的设计和实施。这是面向对象的编程人员的梦想:语言灵活,并支持复杂的面向对象特性。在这种意义下,它真正能够与编程人员现有的技能进行互操作。
ASP.NET
的另一个优势是其开发环境。例如,开发人员可以使用
WebMatrix(一个社区支持的工具)、Visual
Studio
.NET
或各种
Borland
工具(如
Delphi
和
C++
Builder)。例如,Visual
Studio
允许设置断点、跟踪代码段和查看调用堆栈。总而言之,它是一个复杂的调试环境。许多其他第三方的
ASP.NET
IDE
解决方案也将必然出现。
但是ASP.NET强健性,是以损失效率为代价的。ASP.NET
在内存使用和执行时间方面耗费非常大,这大部分归因于较长的代码路径。对基于
Web
的应用程序,这些局限可能是一个严重的问题,因为在
Web
上,您的应用程序可能扩展为每秒成千上万的用户。内存使用率还可能成为
Web
服务器上的一个问题。
这几个都提供在
HTML代码中混合某种程序代码、由语言引擎解释执行程序代码的能力。但JSP代码被编译成
Servlet并由Java虚拟机解释执行,这种编译操作仅在对JSP页面的第一次请求时发生。在ASP
、PHP、JSP环境下,HTML代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。普通的
HTML页面只依赖于Web服务器,而ASP
、PHP、JSP页面需要附加的语言引擎分析和执行程序代码。程序代码的执行结果被重新嵌入到HTML代码中,然后一起发送给浏览器。ASP
、PHP、JSP三者都是面向Web服务器的技术,客户端浏览器不需要任何附加的软件支持。
性能比较:
有人做过试验,对这ASP、PHPP、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,PHP,JSP,.Net都有相当数量的支持者,由此也可以看出各有所长。正在学习或使用动态页面的朋友可根据他们的特点选择一种适合自己的语言。
参考资料:www.laoqiang.net