
1.1 动态网页开发技术简介
随着Web技术的不断发展和电子商务在因特网上的广泛应用,人们已经不再满足于建立各种静态地发布信息的网站,而更多的时候需要网站能够与用户进行有效的交互,并能提供后台数据库的管理和控制等服务的动态网站。这样就推动了动态网页技术的发展,目前存在的动态网页技术有微软早先提出的ASP(Active Server Pages)技术,现在比较流行且常用的有JSP (Java Server Pages)技术,PHP(Hypertext Preprocessor)技术,而ASP.NET不仅仅是ASP的下一个版本,而是一种建立在通用语言上的程序构架,能被用于一台Web服务器来建立强大的Web应用程序。本节主要向读者简要介绍 ASP、JSP 和 PHP 3种动态网页开发技术, ASP.NET将在后面的详细剖析。
1.1.1 ASP动态网页技术
早期的动态网站开发技术通过采用 CGI-BIN 接口来实现,开发人员需要编写与接口相关的独立程序和基于Web的应用程序,两者之间通过Web服务器来实现调用关系。这种开发技术存在的致命弊端是可扩展性不强——每新增一个 CGI 程序必须要求在服务器上新增一个进程。这样,如果多个客户端并发地访问该Web程序,这些进程将耗尽该Web服务器所有的可用资源,直至系统崩溃。
为克服这一开发技术的弊端,微软公司提出了 ASP 技术,一种类似 HTML(Hypertext Markup Language,超文本标识语言)、Script(脚本)与CGI(Common Gateway Interface,通用网关接口)的结合体,它没有量身定制的编程语言,开发人员可以使用包括 vbscript, javascript等在内的许多已有的脚本语言编写ASP的应用程序,并且ASP的程序编制比HTML更方便且更有灵活性。其应用程序的运行模式是:应用程序运行于Web服务器端,运行后再将运行结果以HTML格式传送至客户端的浏览器,因此ASP与一般的脚本语言相比,具有更好的安全性。
ASP吸收了当今许多流行的技术,如IIS,ACTIVEX,VBSCRIPT,ODBC等,是一种发展较为成熟的网络应用程序开发技术;其核心技术是对组件和面向对象技术的充分支持。通过使用ASP的组件和对象技术,用户可以直接使用ActiveX控件,调用对象方法和属性,以简单的方式实现强大的功能。因此,对于广大网页技术开发人员来说,ASP与CGI相比,其优点是它不仅可以包含HTML标签,还可以直接访问数据库及使用无限扩充的ActiveX控件,因此在程序编制上更富有灵活性。但该技术基本上是局限于微软的操作系统平台之上,主要工作环境是微软的IIS应用程序结构,所以ASP技术不能很容易地实现跨平台的Web服务器程序开发。
1.1.2 JSP动态网页技术
JSP动态网页技术是由SUN公司于1999年推出的新技术,该技术是基于Java Servlet以及整个Java体系的Web开发技术。利用这一技术可以建立先进、安全和跨平台的动态网站。
总的来讲,SUN公司的JSP技术和微软的ASP技术在技术方面有许多相似之处。主要体现在如下:
● 两者都为基于Web应用实现动态交互网页制作提供的技术环境支持;
● 两者都能够为程序开发人员提供实现应用程序的编制与自带组件设计网页从逻辑上分离的技术;
● 两者都能够替代早期的CGI技术使网站建设与发展变得较为简单与快捷。
但是由于它们来源于不同的技术规范组织,因此在技术实现等方面存在差异,主要体现在它们实现的基础上,两者对Web服务器平台要求不相同。ASP 一般只应用于WindowsNT/2000/2003平台,而JSP则在不加修改的前提下,可以在绝大多数的WebServer上运行,其中不乏包括了NT的系统,符合“write once,run anywhere”(“一次编写,多平台运行”)的Java标准,实现了系统的跨平台性,而且基于JSP技术的应用程序比基于ASP的应用程序易于维护和管理。下面总结了JSP动态网页技术几个特点:
● 实现内容与表示的分离
使用JSP动态网页技术,Web页面开发人员或美工人员可以使用HTML或者XML标识来设计和美化最终页面,而网页中的动态内容使用JSP标识或者小脚本来生成。这些生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。如果核心逻辑被封装在标识和Beans中,那么其他人,如Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。这样使开发人员的分工明确,开发效率得到明显提高,懂页面设计和美工的负责页面的设计,而Java程序员负责页面动态逻辑的实现。
● 强调可重用的组件
JSP是一种基于可重用的,跨平台的组件(JavaBeans或者Enterprise JavaBeans TM组件)来执行应用程序所要求的更为复杂的动态网页技术。开发人员在开发过程中可以充分重用一些比较成熟的组件,来处理复杂的业务逻辑。基于组件的开发方法提高了总体开发效率,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。
● 采用标识简化页面开发
在项目开发人员中,Web页面开发人员并不一定都是熟悉脚本语言的编程人员。为了方便开发人员和提高开发效率,JSP技术封装了许多经常使用的与JSP相关的XML标识中进行动态内容生成所需要的功能。标准的JSP标识能够访问和实例化JavaBeans组件,设置或者检索组件属性,下载Applet,以及执行用其他方法更难于编码和耗时的功能。
● JSP的跨平台
这是ASP技术无法比拟的,几乎所有平台都支持Java,JSP应用程序可以在所有平台下通行无阻。在NT平台下IIS通过一个插件,例如JRUN或者ServletExec,就能支持JSP。著名的Web服务器Apache能够很好地支持JSP。由于Apache广泛应用在NT、UNIX和Linux上,因此JSP有着更广泛的运行平台。
1.1.3 PHP动态网页技术
PHP动态网站开发技术与ASP相似,是一种易于学习和使用的服务器端脚本语言,是生成动态网页的工具之一。其语法大部分与C、Java、Perl等语言相似,并形成了自己的独有风格,利用该语言Web程序员可以快速地开发出动态网页。PHP在大多数UNIX平台、GUN/Linux和微软Windows平台上均可以运行。
PHP的优点主要有:
● 安装方便,学习过程简单
PHP是完全免费的,可以不受限制地获得源码,甚至可以从中加进你自己需要的特色。
● 数据库连接方便,兼容性强
PHP提供了标准的数据库接口,几乎可以连接所有的数据库;尤其和MySQL数据库的配合更是“天衣无缝”。PHP在大多数UNIX平台,GUN/Linux和微软Windows平台上均可以运行。
● 扩展性强
● 可以进行面向对象编程等。
但是PHP也存在一些弱点,主要是PHP是一种解释型语言,不支持多线程结构,且支持平台和连接的数据库都有限,特别是在支持的标准方面存在先天不足,对于某些电子商务应用来说,PHP是不适合的。