APP下载

主流动态网页技术PHP、JSP与ASP.NET的比较研究

2011-08-15

淮北职业技术学院学报 2011年1期
关键词:服务器端应用程序网页

杨 萌

(1.合肥工业大学计算机与信息学院,安徽合肥 230009;2.淮北职业技术学院计算机科学技术系,安徽淮北 235000)

主流动态网页技术PHP、JSP与ASP.NET的比较研究

杨 萌1,2

(1.合肥工业大学计算机与信息学院,安徽合肥 230009;2.淮北职业技术学院计算机科学技术系,安徽淮北 235000)

目前流行的动态网页技术主要有PHP、JSP与ASP.NET等,文中比较了PHP、JSP与ASP.NET在数据库的连接、开发效率、安全性等方面的差异,并分析其应用前景及发展方向。

PHP;JSP;ASP.NET;动态网页技术

Web技术经历了重大演变。最早的网页仅仅由静态文档构成,用户浏览时只能被动接受网页内容。随着网络技术的发展,不仅可以在HTML中嵌入程序,而且可以在运行时向HTML文档添加动态内容,从而构成动态网页,用户可以与网页进行交互,实现了全新的媒体形式。

1 主流动态网页技术原理介绍

目前在Internet上广泛使用的后台技术种类繁多,目前流行的三种动态技术有PHP、JSP及ASP.NET等,每种技术都有各自的特点,均是为动态内容而设计。

1.1 PHP

是一种易于学习、有良好数据库交互能力、跨平台的服务器端的嵌入式脚本语言。它与HTML语言具有非常好的兼容性,可以直接在脚本代码中加入HTML标签,也可以在HTML标签中加入脚本代码从而更好地实现页面控制。它的语法大量地借用C、Java和Perl的语法,并结合PHP独有的特性,使WEB开发者能快速地开发出动态页面。它支持目前绝大多数数据库。PHP是完全免费的,可以不受限制自由下载源码,还可以从中加进自己需要的特色。

1.2 JSP

是由SUN公司倡导,许多公司参与一起建立的一种动态网页技术标准[1]132-133。它是HTML文件中插入JAVA程序段和JSP标记从而形成JSP文件。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行的结果连同JSP文件中的HTML代码一起返回给客户。JSP是在服务器端执行的,通常返回该客户端的就是一个HTML文本,因此客户端只要有浏览器浏览就行。Java Servlet是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。

1.3 ASP.NET

ASP最新的版本ASP.NET是对ASP进行了完全重写。ASP.NET是用于构建Web应用程序的一个完整的框架。这个模型的主要特性之一是选择编程语言的灵活性。ASP.NET可以使用脚本语言(如VBscript、Jscript等)以及编译语言(如VB、C等)。新框架使用通用语言运行环境(CLR),先将您语言的源代码编译成Microsoft中间语言代码,然后CLR执行这些代码。这个框架还提供真正的面向对象编程(OOP),并支持真正的继承、多态和封装。.NET类库根据特定的任务组织成可继承的类。除此之外,当用ASP.NET编程时,可以用ODBC来集成数据库,ODBC提供了一组一致的调用函数来访问您的目标数据库。

2 三者的比较

2.1 前景分析

这三种技术相对来说,JSP是一种较新的技术,国外比国内流行,尤其是电子商务类网站,多采用JSP。JSP是基于平台和服务器的相互独立的,JSP标签可扩展性和JSP跨平台组件的重要性将使JSP为web数据库应用提出更具竞争力的解决防范。

在企业应用方面到底是选.NET平台还是J2EE平台呢?从体系结构和技术细节来讲,J2EE和.NET都采用虚拟机技术,两者对前端HTTP、进程内通信、后端数据库处理技术都发展到极致。而两者在现阶段的主要区别:在功能方面J2EE比.NET更丰富;在使用方面.NET比J2EE更简单;在与平台无关方面.NET还没有真正实现,而J2EE在这一点上具有优势;在风格差异而言,J2EE继承了大型主机和Unix的风格,各个部件之间相对松散独立,需要一定组合过程,而.NET的风格更像Windows系统,所有组件都紧密地集成在一起。

在PHP5中,OO体系几乎是COPY的Java的,这样一来既保证了PHP高阶用户不流失,也使得他们能方便地使用最新的技术体系来架构自已的应用,同时也为Java程序员使用PHP提供了方便。在完善OO体系后,PHP具备了真正进入企业级市场的能力。因此,在未来相当长时期内,PHP一方面会和Java之间建立更为紧密的关系用来黏合JavaBeans和Servlet,同时PHP会争取在某一些方面取代JSP,另一方面是做Java和.NET间的集成。

2.2 应用范围

ASP.NET是基于通用语言的编译运行的程序,所以它的强大性和适应性,可以使它运行在Web应用软件开发者的几乎全部的平台上[2]13-14。通用语言的基本库,消息机制,数据接口的处理都能无缝的整合到ASP.NET的Web应用中。

PHP3可在Windows、Unix、Linux的Web服务器上正常执行,还支持IIS、Apache等一般的Web服务器。用户更换平台时无需变换PHP3代码,可即拿即用。

JSP作为Java家族的一员,秉承了Java技术的“一次编写,随处可用”的特性,JSP几乎可以执行于Win NT、Linux等所有平台。在NT下IIS通过一个外加服务器,例如JRUN就能支持JSP。由于广泛应用在NT、Unix和Linux上的Web服务器Apache能够支持JSP,因此JSP有更广泛的执行平台。Win NT、Linux、Unix这三种平台各有各的优势但Java字节码都是标准的与平台无关的,因此从一个平台移植到另外一个平台不用重新编译。

2.3 安全性比较

PHP的运行是靠它的语言解释器来完成的。在NT或WIN9X下,PHP1EXE是一个解释器它的作用是解释后缀为1PHP、1PHP3、1PHTML或其它的文件,根据里面定义的程序来访问数据库,读写文件或执行外部命令,并将执行的结果组织成STRING返回给WEB SERVER然后当作HTML格式的文件发送给浏览器读取文件和执行外部命令。PHP的另外一个特性是执行外部命令,在UNIX下比较多见:ls,echo等。这些都是安全隐患之所在。

对于ASP.NET来说内建的wiIldow8验证和每一个应用程序的独立配置,可以确保原程序的绝对安全。

JSP要先编译成字节码然后再由Java虚拟机执行,源码相对不易被下载,尤其在JavaBean后安全性更高。Java还能通过异常处理机制来有效防止系统的崩溃。

2.4 技术比较

JSP虽然在形式上与ASP或PHP很相似—都可以被内嵌在HTML代码中,但执行方式却完全不同。在执行时,JSP文件被JSP解释器(JSP Parser)转换成Servlet代码,然后代码再被Java编译器编译成.class字节文件,由生成的Servlet来对客户端应答。所以JSP可以看做是Servlet的脚本语言版。

PHP是一种在服务器端运行,嵌入在HTML并由服务器解释的脚本语言。PHP独特的语法混合了C、Java、Perl以及PHP创新的语法,容易被初学者掌握。这种语言可以让Web开发人员快速高效地写出动态生成的页面。

ASP.NET的语法在很大程度上与ASP兼容,同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护。ASP.NET是一个已编译的、基于.NET的环境,可以用任何与.NET兼容的语言创作应用程序。另外,任何ASP.NET应用程序都可以使用整个Microsoft.NET Framework。ASP.NET可以无缝地与WYSIWYG HTML编辑器和其他编程工具(包括Microsoft Visual Studio.NET)一起工作。这不仅使得Web开发更加方便,而且还能提供这些工具必须提供的所有优点。

2.5 连接数据库比较

(1)ASP.NET ASP.NET通过ADO技术可以访问数据库系统,ADO提供的DataGrid等数据库元件可以直接和数据库联系,把数据库中的内容显示出来[3]46-48。

(2)PHP PHP支持多种主流与非主流的数据库,如:Interbase、Msql等。其中,PHP与Mysql是现在绝佳的组合,是可跨平台运行的。PHP可以编译具有与许多数据库相连接的函数,Web页面开发人员可以编写外围函数去间接存取数据库。通过这样的途径,当更换使用的数据库时,可以轻松地修改编码以适应这样的变化。PHPLIB就是最常用的可以提供一般事务需要的一系列数据库。目前,PHP提供的数据库接口支持彼此不统一,比如对MySQL、Sybase等的接口彼此不相同,这是PHP的一个弱点[2]13-14。

(3)JSP使用JSP标识或者小脚本来产生页面上的动态内容。产生内容的逻辑被封装至标识和JavaBeans群组件中,并且捆绑在小脚本中,所有的脚本在服务器端执行。在服务器端,JSP引擎解释JSP标识,产生所请求的内容,并且将数据库操作结果以HTML或XML页面的形式发送回浏览器。这有助于作者保护自己的代码。

3 结论

真正的市场,是需要强大的竞争者之间的较量。PHP,JSP和ASP.NET相互共存,它们本身也在不断地相互借鉴和完善,并且有望通过Web服务实现互操作。这样用户才能得到最好的技术和解决方案。

[1] 张智敏.动态网页设计技术ASP.NET、PHP与JSP的比较分析[J].科学之友,2008,11(33).

[2] 胡杨.动态网页技术ASP、PHP和JSP比较分析[J].软件技术研究,2006,1(7).

[3] 乐秀潘,沈琴.ASP与ASP.NET的比较[J].电力系统通信,2001(12).

责任编辑:孟云玲

TP393.02

A

1671-8275(2011)01-0009-02

2010-10-26

杨萌(1979-),女,安徽淮北人,合肥工业大学计算机与信息学院2009级计算机技术专业硕士研究生,淮北职业技术学院计算机科学技术系助理工程师。

猜你喜欢

服务器端应用程序网页
Linux环境下基于Socket的数据传输软件设计
删除Win10中自带的应用程序
谷歌禁止加密货币应用程序
基于CSS的网页导航栏的设计
基于HTML5静态网页设计
浅析异步通信层的架构在ASP.NET 程序中的应用
基于URL和网页类型的网页信息采集研究
基于Qt的安全即时通讯软件服务器端设计
网页制作在英语教学中的应用
网页防篡改中分布式文件同步复制系统