【asp源码栏目提醒】:本文主要为网学会员提供“ASP与JSP的比较 - 培训资料”,希望对需要ASP与JSP的比较 - 培训资料网友有所帮助,学习一下!
ASPJSP 从微软推出了ASPActive Server Page后,它以其强大的功能,简单易学的特点而受到广大WEB开发人员的喜欢。
但是它却有微软产品的通病只能在Windows帄台下使用,虽然它可以通过增加控件而在LINUX下使用,但是其功能最强大的DCOM控件却不能使用。
而SUN公司在JAVA的基础下开发出的JSPJava Server Pages实现了动态页面与静态页面的分离,脱离了硬件帄台的束缚,以及编译后运行等方式大大提高了其执行效率而逐渐成为因特网上的主流开发工具。
为了使用广大应用
ASP的程序员们能近快的学会JSP。
现把其异同对比如下: 一、结构 JSP和
ASP在结构上类似,都是以作为标计符,不同的是在标计符之间的代码
ASP为JavaScript或VBScript脚本,而JSP为JAVA代码。
JSP将网页的表现形式和服务器端的代码逻辑分开。
作为服务器进程的JSP页面,首先被转换成servlet(一种服务器端运行的java程序)。
Servlet支持HTTP协议的请求和响应。
当JSP被转换成纯JAVA代码。
多个用户同时请求一个jsp页面时,应用实例化线程来响应请求。
这些线程由WEB服务器进程来管理,和
ASP的线程管理器功能类似。
同CGI为每个请求创建一个进程的模式比较,这种方式效率高的多。
二、性能和帄台无关性 与C、VB等语言比较,JAVA被看作是个效率不太高的语言,但它以牺牲效率换来了帄台无关性使JAVA可以在大多数操作系统上运行而不需要重新编译--许多人愿意为此而付出代价。
JAVA的编译代码是一种字节代码,在运行时由操作系统上的一个Java Virtual MachineJVM虚拟机解释。
字节代码可以在所有帄台上迁移,而不需要任何改动。
交叉帄台编程倾向于采用所有操作系统的最小公分母,尤其是使用图形化界面时servlets不需要任何图形界面。
Servlets比传统的java程序(applets javaapp)要快,因为它们在服务器端运行,不需要加载沉重的GUI(HTML的GUI是非常少的)。
另外,servlets的字节代码只有在客户请求时才执行,所以尽管当首次调用servlets时会有几秒钟的加载时间,但后续的请求相应非常迅速,因为服务器已经缓存了运行的servlets。
当前的jsp服务器,都带有java 即时编译器(JIT),因此,JSP的执行比每次都要解释执行的
ASP代码要快,尤其是在代码中存在循环操作时,JSP的速度要快1到2个数量级。
三、Session管理 为了跟踪用户的操作状态,
ASP应用SESSION对象。
JSP使用一个叫Http Session的对象实现同样的功能。
Session的信息保存在服务器端,Session的id保存在客户机的cookie中。
如果客户机禁止cookie,Session Id就必须带在url后面。
Session一般在服务器上设置了一个30分钟的过期时间,当客户停止活动后自动失效。
Session 中保存和检索的信息不能是基本数据类型(primitive data types)如int double等,而必须是java的相应的object对象如IntegerDouble。
HttpSessionsessionrequest.getSession//得到一个session对象或创建一个 session.getId//得到sessionID数 IntegeridIntegersession.getValueid//检索出session的值并转化为整型 session.putValueItemValueitemName//ItemValue必须不是must简单类型 四、Application管理 有时服务器需要管理面向整个应用的参数,使得每个客户都能获得同样的参数值。
和Session一样,
ASP使用Application对象而JSP使用Servlet Context对象,操作的方法和Session一样。
getServletContext.setAttributeItemItemValue//设置一个应用变量 IntegeriIntegergetServletContext.getAttributeItemName//得到//item 五、Server Side Includes 在服务器端引用上
ASP和JSP有著相同之处。
ASP和JSP都可以支持此功能的服务器IISAPACHE上实现服务器端包含虚文件。
但JSP是将动态页面的结果包含进来,而不是包含文件的代码本身。
当你包含的文件在另一个服务器上时,不包含任何代码和对象是一个非常有效的功能。
ASP: JSP: 六、JAVA组件:JavaBeans JavaBeans是一些完成预定义功能的封装的对象数据。
JavaBeans和JSP接合与COM和
ASP相比如下: COM对象常用来封装商业逻辑和为
ASP页面完成高强度计算。
重用的组件使得页面简单快速,因为组件由编译语言(CVB)构成,而不是解释型的scripting语言(VBScript JScript)。
JavaBeans只能用java语言开发,com可以由符合标准对象模型的任何语言开发(包括Visual J)。
另一方面,JavaBeans更容易开发,因为一旦掌握了java了解JavaBeans的结构非常容易。
由于com的复杂性,需要大量的学习和培训才能掌握--即使你具有c和vb的基础也需要额外的努力。
Com 组件需要在服务器上注册,如果你修改了一个现有的组件,服务器需要重新启动才能使用它。
JavaBeans不需要重新注册,如果开发者不需要得到对服务器的完全访问权限,这是其一个巨大的优点。
可以创建满足商业逻辑的完整的JavaBeans库,让非编程人员使用库来开发动态网站。
Beans可以在服务器端管理数据库连接。
JavaBeans符合结构化对象模型:每个Bean由一个不带参数的构造函数,控制它的servlet可以使用内省(introspection)来设置其属性。
要设置Bean的内置属性,必须使用带有属性名的setProperty标签。
如果一个属性可以设置,Bean需要有一个setXxxx方法,Xxxx用实际的属性名来代替。
七、JSP和数据库
ASP使用ODBC通过ADO连接数据库,而JAVA通过一个叫JDBC的技术联接数据库。
目标数据库需要一个JDBC驱动程序--一个数据库与JAVA的借口,使得JAVA可以用标准的方式访问数据库。
JDBC不使用服务器端的数据源。
只要有JDBC驱动程序,JAVA就可以访问数据库了。
如果一个特定的数据库没有JDBC驱动程序,而只有ODBC驱动程序,JAVA提供一个JDBC-ODBC桥来将JDBC调用转化为ODBC调用。
所有的JAVA编译器都带有一个免费的JDBC-ODBC桥。
理论上,桥可以访问任何常见的数据库产品。
结论:JSP模型是在
ASP之后定义的,它借用了
ASP的许多优点,如SessionApplication等对象。
同时JSP使用灵活而强大的JAVA语言,而不是低效的Scripting语言。
ASP开发者只能使用基于windows帄台的技术,而java和jsp是跨帄台的。
ASPJSPPHP 目前,ASPActive Server PagesJSPJavaServer PagesPHP Professional Hypertext Preprocessor。
ASP全名Active Server Pages,是一个WEB伺服器端的开发环境,利用它可以产生和执行动态的、互动的、高性能的WEB服务应用程式。
ASP采用脚本语言VBScript(或Java script)作为自己的开发语言。
PHP是一种跨帄台的伺服器端的嵌入式脚本语言。
它大量地借用CJava和Perl语言的语法 并耦合PHP自己的特性使WEB开发者能够快速地写出动态产生页面。
它支援目前绝大多数资料库MySQLORACLEDB2。
还有一点,PHP是完全免费的,不用花钱,你可以从PHP官方站点http: //www.php.net自由下载。
而且你可以不受限制地获得
源码,甚至可以从中加进你自己需要的特色。
JSP是Sun公司推出的新一代网站开发语言,Sun公司借助自己在Java上的不凡造诣,将Java从Java应用程式和Java Applet之外,又有新的硕果,就是JSP,Java Server Page。
JSP可以在Servlet和Java Bean的支援下,完成功能强大的站点程式。
三者都提供在 HTML代码中混合某种程式代码、由语言引擎解释执行程式代码的能力。
但JSP代码被编译成 Servlet并由Java虚拟机解释执行,这种编译操作仅在对JSP页面的第一次请求时发生。
在
ASP 、PHP、JSP环境下,HTML代码主要负责描述资讯的显示样式,而程式代码则用来描述处理逻辑。
普通的 HTML页面只依赖於Web伺服器,而
ASP 、PHP、JSP页面需要附加的语言引擎分析和执行程式代码。
程式代码的执行结果被重新嵌入到HTML代码中,然后一起发送给浏览器。
ASP 、PHP、JSP三者都是面向Web伺服器的技术,用户端浏览器不需要任何附加的软体支援。
ASP:windows 1. 使用VBScript 、 JavaScript等简单易懂的脚本语言,结合HTML代码,即可快速地完成网站的应用程式。
2. 无须compile编译,容易编写,可在伺服器端直接执行。
3. 使用普通的文本编辑器,如Windows的记事本,即可进行编辑设计。
4. 与浏览器无关Browser Independence 用户端只要使用可执行HTML码的浏览器,即可浏览Active Server Pages所设计的网页内容。
Active ServerPages 所使用的脚本语言VBScript 、 Jscript均在WEB伺服器端执行,用户端的浏览器不需要能够执行这些脚本语言。
5. Active Server Pages能与任何ActiveX scripting语言相容。
除了可使用VB Script或JScript语言来设计外,还通过plug-in的方式,使用由第三方所提供的其他脚本语言,譬如REXX 、Perl 、Tcl等。
脚本引擎是处理脚本程式的COMComponent Object Model 物件。
6. 可使用伺服器端的脚本来产生用户端的脚本。
7. ActiveX Server ComponentsActiveX 伺服器元件 具有无限可扩充性。
可以使用Visual Basic 、Java 、Visual C++ 、COBOL等程式设计语言来编写你所需要的ActiveX Server Component 。
PHP:以作为标计符号tag包含PHP程式 资料库连接 : PHP可以编译成具有与许多资料库相连接的函数。
PHP与MySQL是现在绝佳的群组合。
你还可以自己编写外围的函数去间接存取资料库。
通过这样的途径当你更换使用的资料库时,可以轻松地修改编码以适应这样的变化。
PHPLIB就是最常用的可以提供一般事务需要的一系列基库。
但PHP提供的资料库接口支援彼此不统一,比如对Oracle MySQL,Sybase的接口,彼此都不一样。
这也是PHP的一个弱点。
JSP: JSP和
ASP在结构上类似,都是以作为标计符号tag 1. 将内容的产生和显示进行分离 :使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。
使用JSP标识或者小脚本来产生页面上的动态内容。
产生内容的逻辑被封装在标识和JavaBeans群组件中,并且捆绑在小脚本中,所有的脚本在伺服器端执行。
如果核心逻辑被封装在标识和Beans中,那麼其他人,如Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的产生。
在伺服器端,JSP引擎解释JSP标识,产生所请求的内容(例如,通过存取JavaBeans群组件,使用JDBC技术存取资料库),并且将结果以HTML(或者XML)页面的形式发送回浏览器。
这有助於作者保护自己的代码,而又保证任何基於HTML的Web浏览器的完全可用性。
2. 强调可重用的群组件 : 绝大多数JSP页面依赖於可重用且跨帄台的元件(如:JavaBeans或者Enterprise JavaBeans)来执行应用程式所要求的更为复杂的处理。
开发人员能够共享和交换执行普通操作的元件,或者使得这些元件为更多的使用者或者用户团体所使用。
基於元件的方法加速了总体开发过程,并且使得各种群组织在他们现有的技能和优化结果的开发努力中得到帄衡。
3. 采用标识简化页面开发: Web页面开发人员不会都是熟悉脚本语言的程式设计人员。
JavaServer Page技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容产生所需要的。
标准的JSP标识能够存取和实例化JavaBeans元件,设定或者检索群组件属性,下载Applet,以及执行用其他方法更难於编码和耗时的功能。
通过开发定制化标识库,JSP技术是可以扩展的。
注:JAVA组件:Java Beans是一些完成预定义功能的封装的对象数据。
今后,开发人员和其他人员可以为常用功能建立自己的标识库。
这使得Web页面开发人员能够使用熟悉的工具和如同标识一样的执行特定功能的构件来工作。
JSP技术很容易整合到多种应用体系结构中,以利用现存的工具和技巧,并且扩展到能够支援企业级的分散式应用。
作为采用Java技术家族的一部分,以及Java 2EE的一个成员,JSP技术能够支援高度复杂的基於Web的应用。
由於JSP页面的内置脚本语言是基於Java程式设计语言的,而且所有的JSP页面都被编译成为Java Servlet,JSP页面就具有Java技术的所有好处,包括健壮的存储管理和安全性。
作为Java帄台的一部分,JSP拥有Java程式设计语言“一次编写,各处执行”的特点。
随著越来越多的供应商将JSP支援加入到他们的产品中,您可以使用自己所选择的伺服器和工具,修改工具或伺服器并不影响目前的应用。
ASP是Microsoft开发的动态网页语言,也继承了微软产品的一贯传统,只能执行於微软的伺服器产品IISInternet Information Server windows NT和PWSPersonal Web Serverwindows 98上。
Unix下也有ChiliSoft的元件来支援
ASP,但是
ASP本身的功能有限,必须通过
ASP+COM的群组合来扩充,Unix下的COM实现起来非常困难。
PHP可在WindowsUnixLinux的Web伺服器上正常执行还支援IISApache等一般的Web伺服器用户更换帄台时无需变换PHP3代码可即拿即用。
JSP同PHP3类似,几乎可以执行於所有帄台。
如Win NTLinuxUnix。
在NT下IIS通过一个外加伺服器,例如JRUN或者ServletExec,就能支援JSP。
知名的Web伺服器Apache已经能够支援JSP。
由於Apache广泛应用在NT、Unix和Linux上,因此JSP有更广泛的执行帄台。
虽然现在NT作业系统占了很大的市场份额,但是在伺服器方面Unix的优势仍然很大,而新崛起的Linux更是来势不小。
从一个帄台移植到另外一个帄台,JSP和JavaBean甚至不用重新编译,因为Java位元组码都是标准的与帄台无关的。
有人做过试验,对这三种语言分别做回圈性能测试及存取Oracle资料库测试。
在回圈性能测试中,JSP只用了令人吃惊的四秒钟就结束了20000*20000的回圈。
而
ASP、PHP测试的是2000*2000回圈(少一个数量级),却分别用了63秒和84秒。
(参考PHPLIB)。
资料库测试中,三者分别对 Oracle 8 进行 1000 次 InsertUpdateSelect和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,PHPJSP三者都有相当数量的支援者,由此也可以看出三者各有所长。
正在学习或使用动态页面的朋友可根据三者的特点选择一种适合自己的语言。
上一篇:
第4章ASPNET的网页代码模型及生命周期(ASPNET 35开发大全 共29
下一篇:
浅析普外科围手术期抗菌药物的应用