【asp源码栏目提醒】:网学会员为需要asp源码的朋友们搜集整理了动态网页技术JSP与ASP_PHP的比较浅析 - 其它论文相关资料,希望对各位网友有所帮助!
电脑知识与技术网络通讯与安全电脑知识与技术在Internet技术广泛应用在各个领域的今天,计算机网络应用不再局限于静态的页面,新的挑战是创建动态的、交互式、开放式的甚至并行的、分布式的网站。
动态交互网页制作的技术有CGI、SSI、ISA-PI、ASP、PHP、JSP。
目前主流的动态网页技术主要采有ASP、PHP和JSP三种技术。
1ASP、PHP、JSP三种技术的优点1.1ASP的强势ASP(ActiveServerPages)———动态服务器页面,是一套Mi-crosoft开发的服务器端脚本环境,通过ASP可以结合HTML网页、ASP指令和ActiveX元件建立动态的、交互的且高效的Web服务器应用程序。
其强势体现在:(1)简单易学,编辑方便。
使用VBScript、Jscript等简单易懂的脚本语言,结合HTML代码,使用普通的文本编辑器,即可进行编辑设计;(2)效率高,对机器硬件设备的要求不高。
有了ASP程序不必担心客户端的浏览器是否能运行所编写的代码,客户端的浏览器不需要执行这些脚本语言,无须Compile编译,所有的程序都将在服务器端直接执行。
当程序执行完毕后,服务器仅将执行的结果返回给客户浏览器,这样也就减轻了客户端浏览器的负担,大大提高了交互的速度;(3)可扩充性较强。
ASP使用ActiveXServerComponents(ActiveX服务器组件),可以使用VisualBasic、Java、VisualC++、COBOL等程序设计语言来编写所需要的ActiveXServerComponent。
1.2PHP的优点PHP(PernoalHomePages)是一种用于创建动态Web页面的服务端脚本语言,它是嵌入HTML文件的一种脚本语言。
优点是:(1)跨平台性。
PHP在大多数Unix、GUN/Linux和Windows平台上均可运行,而且可以将PHP作为ApacheWeb服务器的内置模块或CGI程序运行;(2)简单易学,开发速度快。
PHP与HTML语言具有良好的兼容性,用户可以直接在Web页面中输入PHP命令代码,因而不需要任何特殊的开发环境。
PHP脚本语言的语法结构与C语言和PERL语言的语法风格非常相似;(3)源代码开放、公开免费的PHP是完全免费的,可以不受限制的获得
源码,甚至可以从中加进你自己需要的特色。
对PHP的支持是免费的,PHP具有自由软件的所有特性;(4)执行效率高,速度较快,PHP消耗较少的系统资源;(5)对数据库支持极其广泛,可直接与Infomix、Oracle、Sybase、Solid、PostgreSQL、MYSQL、Access等直接连接,PHP还完全支持ODBC(OpenDataBaseConnectivity)接口,凡是支持ODBC接口的数据库,PHP都可顺利地对其操作。
1.3JSP的技术优势JSP(JavaServletPages)是Sun公司推出的基于JavaServlet以及整个Java体系的Web开发技术。
JSP解决了目前ASP、PHP的一个通病脚本级执行,每个JSP文件总是先被编译成Servlet,然后再由Servlet引擎运行。
它为基于Java环境开发多层结构的动态Web应用程序提供一种方便、快捷的方法。
JSP程序其实就是在HTML代码中嵌入Java代码段。
其技术优势表现为以下几点:(1)内容的显示和内容的生成进行分离,有利于协作开发。
因为在JSP页面中,声称内容的逻辑封装处于业务层的JavaBean或EJB中,然后通过嵌入页面的脚本代码生成具体的内容,具体实现则是由页面文件负责完成的。
如果核心逻辑被封装在标识和Beans中,那么其他人,如Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。
在服务器端,JSP引擎解释JSP标识和小脚本,生成所请求的内容,并且将结果以HTML(或者XML)页面的形式发送回浏览器。
这有助于作者保护自己的代码,而又保证任何基于HTML的Web浏览器的完全可用性。
网页内容的显示和内容的生成分离的,这就意味着Web设计人员可以方便的设计页面,而不影响内容的生成,而程序设计者只需要修改相应的业务逻辑,而不用管显示的形式。
这样,对于一个大型的分布式应用系统来说,非常有利于协作开发。
(2)采用可重用的组件提高开发效率。
大多数JSP页面依赖于可重用的,跨平台的组件(JavaBeans或者EnterpriseJavaBeansTM组件)来执行应用程序所要求的更为复杂的处理。
开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者客户团体所使用。
基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。
(3)采用标识、标签库简化页面开发。
JSP可订制标签库,用户使用一些HTML的标签和嵌入的脚本来进行动态网站的开发。
JSP的开发者能够定制自己的标签库(TagLib),使得Web页面设计人员能够非常形象的利用开发者所设计的构建,而不需要懂关于程序的知识。
JSP技术封装了许多功能,这些功能是在易用的、收稿日期:2005-10-29作者简介:魏红(1980-),女,湖北襄樊人,广东商学院ERP实验中心教师,武汉大学双学士,研究方向:ERP和计算机网络技术。
动态网页技术JSP与ASP、PHP的比较浅析魏红(广东商学院ERP实验中心,广东广州510320)摘要:PHP、ASP和JSP是目前主要流行的动态网页技术。
这里主要讨论JSP与ASP、PHP的区别,比较其性能、效率、安全等方面的差异,分析其应用前景及发展方向。
关键词:ASP;PHP;JSP中图分类号:TP393文献标识码:B文章编号:1009-3044(2006)02-0088-03ComparativeAnalysisofASP,PHPandJSPWEIHong(ExperimentalCenterofEnterpriseResourcePlanning,GuangdongBusinessCollege,Guangzhou510320,China)Abstract:ASP,PHPandJSPareknownasmainlypopulardynamicwebpageprogramminglanguage.FordiscussingtheofdistinctionofJSP,ASPandPHP,thisdissertationcomparesthedifferencessuchascapacity,efficiency,securityandsoonamongthem,andanalyzetheapplicationperspectivesanddevelopdirection.Keywords:ASP;PHP;JSP88网络通讯与安全电脑知识与技术与JSP相关的XML标识中进行动态内容生成所需要的。
标准的JSP标识能够访问和实例化JavaBeans组件,设置或者检索组件属性,下载Applet,以及执行用其他方法更难于编码和耗时的功能。
通过开发定制化标识库,JSP技术是可以扩展的。
今后,第三方开发人员和其他人员可以为常用功能创建自己的标识库。
这使得Web页面开发人员能够使用熟悉的工具和如同标识一样的执行特定功能的构件来工作。
(4)平台适应性广。
作为采用Java技术家族的一部分,JSP拥有Java语言的“一次编写,随处可用(WriteOnce,RunAnywhere)”特点。
几乎所有的平台都支持Java、JavaBean。
从一个平台移植到另外一个平台,JSP和JavaBean甚至不用重新编译,因为Java字节码都是标准的、与平台无关的。
1.4ASP的不足(1)只能运行在Microsoft的服务器产品平台上,无法跨平台应用,程序移植性较差,在Unix下虽然有ChiliSoft的插件来支持ASP,但是ASP本身的功能有限,必须通过ASP+COM的组合来扩充,Unix下的COM实现起来非常困难;(2)由于ASP还是一种Script语言,要提高其工作效率必须使用大量的COM组件,但组件必须花时间、资源即时编译;(3)ASP使用了大量的COM组件,就会因WindowsNT系统最初的设计问题而引发严重、大量的安全问题;(4)Windows本身的所有问题都会因为与NT的捆绑一成不变地累加到它的身上,安全性、稳定性、跨平台性(移植性)都是使其发展成为大型网站的技术的重要瓶颈。
1.5PHP的弱势(1)PHP的技术体系不符合分布式应用体系,缺乏多层结构支持,决定了PHP很难适用大型应用的要求;(2)PHP数据库支持的极大变化,提供的数据库接口支持不统一,更换数据库时,必须更改编码才能运行。
这就使得它不适合运用在电子商务中;(3)PHP缺乏企业级支持,没有组件的支持,扩充性能较弱,因此无法使PHP运用到大型网站和企业级网站,尽管在PHP4.0版本以后开始实现对JavaServlet/JavaBean的支持;(4)由于PHP没有任何编译性的开发工作,所有的源代码无法编译,无法实现商品化应用的开发;由于代码开放的、免费的,由于缺少正规的商业支持,因此其技术无法长足发展,这也是自由软件的缺点。
2JSP与ASP、PHP的不同比较(1)从系统体系上比较。
从分布式应用系统的角度来看,一个网络项目最少分三层:核心层(DataLayer),业务层(BusinessLay-er),表示层(PresentationLayer),或者更多层。
JSP的技术体系符合分布式应用体系。
在Sun公司推出的J2EE(Java2EnterpriseEdi-tion)分布式企业计算体系中,利用JavaBean、EJB(EnterpriseJav-aBean)技术编写业务层的功能是非常强大的,但对于写表示层就很不方便,由Servlet发展而来的JSP就主要是为了方便书写表示层而设计的。
通过JSP调用JavaBean,实现两层的整合,达到分布式应用。
JSP技术能够支持高度复杂的基于Web的应用。
JSP技术很容易整合到多种应用体系结构中,以利用现存的工具和技巧,并且扩展到能够支持企业级的分布式应用。
PHP的技术体系无法将表示层与业务层分离,因此不符合分布式应用体系;Microsoft推出的Windows分布式的互联网应用体系结构(WindowsDNA)是一个建立现代化的多层次的分布式计算解决方案的体系结构,它可与通过任何网络进行传输。
WindowsDNA提供了一个集成客户/服务器和基于Web应用开发的统一体系。
而在WindowsDNA体系中,用于解决表示层的技术之一就是ASP技术。
ASP的技术体系符合分布式应用体系,尤其是升级到.net,这种能力进一步加强。
(2)从运行平台方面比较。
JSP的运行是平台无关性。
PHP可以跨平台,而ASP不能。
这种与服务器硬件和操作系统平台的无关性是JSP相对于其它动态网页技术最大的一个优点。
(3)运行性能方面比较。
就性能方面,对JSP与ASP、PHP三种技术分别做循环性能测试及连接数据库测试。
在循环性能测试中,JSP只用4秒钟就结束了20000*20000的循环。
程序代码如下:<jsp:useBeanid=”Testtime”scope=”page”class=”webTimeBean”/><jsp:getPropertyname=”Testtime”property=”time”/><%inti=0;intj=0;for(i=0;i<20000;i++){for(j=0;j<20000;j++){}}%>而ASP在测试2000*2000(少一个数量级)循环时,却用了63秒。
程序代码如下:<%Response.WrittennowFori=0to2000Forj=0to2000NextNextResponse.Writtennow%>对PHP测试的循环也是2000*2000(少一个数量级),运行时间是84秒,程序代码如下:<?php¥p_time=date(”Y-n-d”).””.date(”h:I:s”);echo¥p_time;for(¥i=0;¥i<2000;¥i++){for(¥j=0;¥j<2000;¥j++){}}¥p_time=date(”Y-n-d”).””.date(”h:I:s”);echo$p_time;?>数据库测试中,用JSP与ASP、PHP三种技术分别对数据库Oracle8进行1000次基本的Insert、Update、Select和Delete操作,JSP需要13秒,PHP需要69秒,ASP则需要73秒(ASP.net的速度有较大的提高)。
从以上测试中可以看出,在处理大型问题方面和大型数据库操作方面下,JSP的性能远远优于ASP、PHP。
JSP在要先编译成字节码(ByteCode)码,再由JAVA虚拟机(JavaVirtualMachine)解释执行,比
源码解释的效率高;服务器上还有字节码的访问效率。
第一次调用JSP网页时因为存在编译过程,速度可能稍微慢一点,以后再访问就会很快。
(4)开发效率的比较。
ASP和PHP的开发效率较高,简单易学,JSP是以Java语言为基础的,比较难掌握。
同时在服务器的搭建和JavaBeans、Servlet、EJB在服务器上的设置和发布都有一定难度。
(5)与数据库连接比较。
ASP使用ODBC通过ADO(ActiveXDataObject)连接数据库;虽然PHP支持的数据库极其广泛,但PHP提供的数据库接口支持不统一;JSP对数据库的访问主要通过JDBC(JavaDataBaseConnectivity)来实现的。
对于只支持ODBC的数据库,可以通过JDBCODBC将JDBC调用转化为ODBC调用来实现访问。
(6)安全性方面比较。
电子商务的迅速发展和逐步广泛的应用,网上交易和网上支付对网站的安全性要求更为重要。
PHP脚本语言存在严重缺陷影响多个Web服务器系统安全,PHP在处理HTTPPOST请求的代码中存在一个严重安全问题。
依赖于处理器的体系结构,远程或者本地攻击者利用这个漏洞,将能以Web服务器运行权限执行任意指令或者造成Web服务器崩溃;还有如PHP的CURL函数存在一个问题,本地攻击者89电脑知识与技术网络通讯与安全电脑知识与技术(上接第63页)的网络连接,使每个用户拥有10Mbit/s或100Mbit/s连接速度,交换式局域网一般通过局域网添加交换设备(交换机)来实现。
交换式局域网具有以下特点:(1)保留现有设施,在保持网络结构不变的情况下使网络性能得到提升;(2)实现用户之间点对点的通信;(3)不会发生用户之间的冲突,使网络利用率达到100%;(4)目前3类以上双绞线和光纤都能支持交换式网络的运行。
因此,为了提高局域网的性能,建议用户尽量使用交换机。
如果我们把全双工技术与交换技术结合,网络性能会得到更大提高,理想状态每对电缆能达到200%的理论利用率,并且不必与其他用户在时间上共享宽带。
3服务器的调整与优化服务器是整个网络的核心,因此,对其调整与优化可以有效地减少系统的瓶颈,提高网络的运行速率。
对服务器的调整与优化,又主要体现在,网卡的调整和内存的优化上。
3.1网卡的调整在多数情况下,一台计算机只安装一块网卡,通过这块网卡将计算机接入网络,并实现计算机之间的通信,当在一台服务器上只安装一块网卡时,所有用户与服务器之间的通信任务全部集中到这块网卡上,这时,该网卡的负担将会加重,而且存在安全隐患,当网卡出现故障时将会导致整个网络的瘫痪,为此,在UNIX、Windows2000等操作系统中,提供了多网卡管理功能,可以在一台服务器安装多块网卡(一般最多为4块),每块网卡连接一组用户(一个网段),实现对用户的分段管理,在减小了每块网卡的吞吐量的同时增加了网卡系统的安全性和稳定性,是面向中小型网络用户的一种很好的解决方案。
当一台计算机(多为服务器)安装了多块网卡对网络进行分段管理后,每一个网络形成一个网段,不同网段之间的通信通过操作系统内置的路由功能来完成,在网络分段过程中应注意以下几个问题:(1)不能单纯使用NetBEUI通信协议,因为其不具有路由功能,即使用NetBEUI协议的信息不能通过路由功能传输到其他网段;(2)一台服务器一般最多只能安装4块网卡。
3.2内存的优化内存是系统的一个重要资源,不仅是操作系统的运行离不开它,而且各类应用软件也必须在调入内存后才能运行,从应用的角度来看,系统内存的不足可能是引发各种系统问题的最常见原因,因此,内存在整个系统中的作用显得尤为重要。
许多用户平时使用Windows98/Me,却将内存配的很高,其实Windows98/Me操作系统中,物理内存的增加不会明显改善系统性能,但Windows2000不同它对内存的利用率几乎呈直线上升状态。
那么,我们如何对内存进行优化呢?(1)合理使用内存。
虽然增加内存可以解决些问题,但这并不是解决问题的全部,首先,要对内存有一个清楚的了解。
仔细查查有哪些程序占用内存,并将一些对内存无用的功能从中删除,例如可删除不必要的协议和服务,以便让出更大的内存供应用程序使用,同时为网络和处理器的工作减小了负担;另外,还应合理的分配各类应用服务,有人喜欢将如NetWare网关服务、RAS、DHCP、WINS等多种服务集中在一台服务器上,以便于管理,事实上这种做法很不科学,并非常容易产生服务器内存的不足。
为此,建议将一些服务移植到另外一台服务器上,对内存的占用进行分流。
(2)确定需要增加多少内存。
当发现内存不足时,就需要增加内存,那么到底需要多大内存呢?一般可通过下列医学方法实现:首先,查看服务器上分页文件(pagefiles.sys)的大小,例如128Mb;接下来打开性能监视器,选择报表方式,添加PagingFile(分页文件)对象下的%Usage(使用率)计数器,并测试其值,如10.367;最后计算%Usage*分页文件大小,即128*10.367%=13Mb,所以需要增加13M的物理内存;(3)内存的升级。
也就是增加内存,但要注意以下问题:①升级要有预见性,要视系统的发展情况,留出一定的余地。
②当在一台计算机上安装两种或两种以上不同速度的内存条时实际速度以最第一条为标准,因此建议用更快速度的内存条替换掉原来的内存。
4结束语以上谈了一些局域网优化方面的一些“拙见”,希望对局域网的优化方面能起到抛砖引玉的作用。
参考文献:〔1〕李馥鹃.局域网优化与测试〔M〕.人民邮电出版社,2002.〔2〕崔亚量.局域网组建与管理专家培训教程〔M〕.电子科技大学出版社,2003.〔3〕杨军.局域网故障排除一点通〔M〕.重庆出版社,2004.可以利用这个漏洞使脚本绕过’open_basedir’目录设置,此漏洞目前厂商还没有提供补丁。
PHP的另外一个特性是执行外部命令,这是在linux、unix系统中最容易出问题的;ASP只在服务器端运行,将执行结果以HTML形式返回客户端浏览器,虽然如此可以屏蔽
源码程序,但微软的Web服务器产品存在若干的系统级安全漏洞,微软公司的网络信息服务软件(IIS)存在严重的安全漏洞,如IIS4.0/5.0/5.1ASP(ActiveServerPages)ISAPI过滤器存在远程缓冲区溢出漏洞,远程攻击者可以利用此漏洞得到主机本地普通用户访问权限;JSP执行时先编译成字节码,再由Java虚拟机执行,
源码相对不易被下载,尤其在用了JavaBean后安全性更高,JavaBean程序完全可以放到不对外的目录中,Java能通过异常处理机制来有效防止系统的崩溃。
(7)扩展性方面比较。
ASP与COM、DCOM组件接合,可扩展,而JSP与JavaBean整合,可以实现对JSP的功能扩展,而PHP不支持组件,无法扩展。
但开发COM组件要比开JavaBean组件难度大;使用COM组件需要在服务器上注册后才能使用,这样如果修改一个组件,就必须注册并重新启动服务器才能使用,而Jav-aBean在修改后不要重新注册。
3结束语虽然ASP和PHP各有优缺点,目前在各种网站应用中都分别占有一定的份额,尤其是在小型商业网站中、个人网站、中小学校园网中ASP、PHP的应用非常广。
同时ASP.NET(ASP+)对ASP进行了较大的发展和升级,也是微软.Net框架向大型站点应用的发展方向。
但JSP基于强大的JAVA语言,具有良好的伸缩性,与JAVAEnterpriseAPI紧密地集成在一起,在网络数据库应用领域具有得天独厚的优势,基于JAVA平台构建的网络程序已经被越来越多的人认为是未来最有发展前途的技术,很多大型网站尤其是电子商务类或电子银行的网站都使用JSP技术。
因此,从跨平台、执行效率、安全性等方面比较来看,JSP技术更适合应用在大型商业网站和企业级应用,其今后的应用前景更好。
参考文献:〔1〕飞思科技产品研发中心.JSP应用开发详解〔M〕.北京:电子工业出版社,2004.〔2〕朱志辉,洪敏仪,沈红辉.JSP与PHP的比较和应用〔J〕.广州大学学报(自然科学版),2004,(1):31-33.〔3〕渠芳,曹志梅.ASP、PHP和JSP技术的比较研究〔J〕.现代情报,2002,(7):50-52.〔4〕杨兴凯,刘宏.JSP与ASP开发环境之比较〔J〕.微型电脑应用,2002,18(9):59-60.90
上一篇:
基于ASPNET平台开发概述
下一篇:
投简历到国外的公司需考虑哪些东西?