当今最热的编程方向——网站后台开发编程 林华 2000年 第38期   几年前,也就是网络刚刚兴起的时候,拥有一个自己的个人主页并不是一件轻松容易的事情。只能用厚厚重重的HTML语言描绘出自己的主页。   单纯用HTML写主页的日子不久就结束了,微软的Frontpage和Macromedia的Dreamweaver还有其他类似软件的出现让做主页变得非常的轻松。而随着网络的继续发展,不管是个人主页上的计数器,留言本还是电子商务网站的商务交易,数据库连接等都需要一种后台的程序去管理和维护,这样才使得网站不仅动态化,而且还可以人性化。如我们常用的网络查询、网上表单的填写与提交等都是网站后台程序运行的具体表现。为了更好地解决网站的互动性,从最初的CGI开始,网站后台编程语言开始迅速发展。 #1 一、网站后台(Web)编程的概念和原理 (一)在什么情况下要用到Web编程?   1.与数据库管理系统(DBMS)结合,是一种最常见,而且是最具扩充性的方式。因为通过不同的数据库,可以使WWW Server提供或记录多样化的资料。   2.用来制作登录(Login)系统,将具有机密性的资料以密码的方式加以保护,不但省去了系统过于开放的困扰,也可以有效地管理使用者。   3.和商业应用联系在一起,开展电子商务这无疑是最大的用途所在。 (二)Web程序执行的原理:   在WWW环境下,由客户端传递一些讯息给WWW Server,再由WWW Server去启动所指定的程序码来完成特定的工作。更确切地说,后台程序就是在服务器端上可执行的程序代码,通过在服务器端执行或者和数据库连接进行数据交换和更改。 (三)Web程序的概念:   Web Server可以读取并显示在客户端无法读取的格式,而且可以像通道一样,在Client和Server端之间,产生客户端所需要的讯息。每一种Web程序都有其特定的语法规则,必须遵守它的语法规则,才可以达到Client到Server端信息交流的目的。 (四)输入输出   每种Web程序的输入基本上都差不多,主要使用Link加入参数或者使用GET的方式输入。输出则有点不同,传统的CGI是利用程序来产生虚拟文件,产生的文件就是包含了整个带有HTML的可以被Web支持类型的文件,而现在主流的Web编程语言都采用嵌入式的方式,这在数据的传输量上减少很多。 #1 二、网站后台开发主流语言介绍   现在流行的Web编程后台语言包括PHP、ASP、传统的CGI,处于开始发展期的JSP、mod perl等,以上介绍的语言可以说占了后台开发语言90%以上的使用率: 各种语言的比较如^38021009a^表1:   PHP作为现在流行的Web编程后台语言,无论从性能上还是开发效率上都是非常好的选择对象,PHP可用在多种Web服务器上;传统CGI则不限于哪种操作系统或Web服务器平台;NSAPI一定要在Netscape的服务器(如Netscape Enterprise Server或FastTrack Server)上才可以执行,但可支援多种操作系统(UNIX或Win32);ASP及ISAPI只在IIS上才有完整的功能。   在稳定性上,由于NSAPI或ISAPI是动态连结的方式,因此执行若出现问题,会使得Web服务器一起瘫痪。而ASP在实际应用上,系统不够稳定。PHP在许多的站台上,不但长期使用都没有问题,而且程序的稳定性也不错。当然最稳定的还是传统CGI程序,因为它是由操作系统负责控制,不会因CGI程序的错误导致Web服务器的不稳定。   在开发及维护时间上,PHP及ASP都有不错的表现。而NSAPI及ISAPI则需要长时间的开发过程,在稳定上线后,这两种界面反倒是效率最佳的方法。传统的CGI程序则要视开发工具语言而定了,用Perl或是shell script不需要编译的过程,直接就可以执行;若用Delphi或VC/BCB甚至用组合语言等都要经过编译才能执行。   要比较和网页结合的能力,PHP和ASP是并驾齐驱的,其它的方式就不能内嵌HTML语法了,而这也是影响开发时间的因素之一。就系统安全性而言,ASP是最差的,在没有经过微软的IIS Service Pack处理之前,使用::$DATA就可以看到ASP的原码,当然,传统CGI的程序,由于是由操作系统直接管理,要破解的难度最高,黑客必须由操作系统下手,而不能由Web服务器下手。PHP在许多商业及非商业使用时,也没有听说过有什么安全的问题。   结合实际综述:对于目前使用的Web编程来说,最适合初学者的无疑是ASP和PHP,其他的语言如CGI由于功能效率的问题已经很少使用,而ISAPI等由于过于复杂,学习难度大,所以使用的也不是很多。mod perl和JSP作为新的技术是非常有前景的,但是它需要一定的技术基础,比如,mod perl起码需要懂得perl,而JSP要对JAVA技术要有一定的了解,所以入门比较难一点,见^38021009b^表2。如今Web后台编程技术发展最相似的一点就是可以把程序嵌入在HTML语言中。以下的内容将对这两方面的内容作详细的介绍,让读者能够开始真正步入Web后台编程。 #1 三、ASP简单介绍   语言特点:作为微软公司的一门新技术,ASP在网络应用中最大的优势就是得到了最新的相关技术的支持,COM技术使得对网络开发、应用开发人员、集训和发送要求形成一个整体。ASP简单地说就是使得网络服务器能够处理应用逻辑,给客户机浏览器发送标准HTML。ASP本身并不能算是一种语言,它的语言基础依靠VBScript或则JavaScript。现在一般使用ASP的,采用VBScript的比较多一点,作为脚本语言来说,它本身也比较容易学习。   让我们来看一个最简单的例子:         First program         现在时间:<%= Now %>         ASP使用定界符<%和%>括入脚本命令。括号里面的就是ASP的语法了,主要是vbscript,<%=now%>中VBScript函数Now返回当前的日期和时间。Web服务器处理该页时,会使用当前的日期和时间替换<%= Now %>并且将该页返回到浏览器,结果如下:   现在时间:9/6/00 2∶20∶00 PM 学习ASP的基础,最好在你安装好IIS服务器以后,进入它的帮助目录,在那里有比较详细的关于ASP的基础知识,应该可以带你入门。 #1 重点难点:   1.ASP的内置对象:Application对象、Request对象、Response对象、Server对象、Session对象、ObjectContext对象,这是用好ASP比较重要的一部分。   2.与数据库的连接:ASP使用的数据库一般使用SQL Server的比较多,毕竟是一个娘胎出来的。   3.ActiveX Data Objects (ADO):是一项容易使用并且可扩展的将数据库访问添加到Web页的技术。你可以使用ADO去编写紧凑简明的脚本以便连接到Open Database Connectivity(ODBC)兼容的数据库和OLE DB兼容的数据源。关于ADO的介绍在这里就不详细说明了,读者可以查看相关书籍,或则去微软的主页上找相关的资料。   4.连接数据库:访问数据库信息的第一步是和数据库源建立连接。ADO提供Connection对象,可以使用该对象建立和管理应用程序和ODBC数据库之间的连接。Connection对象具有各种属性和方法,可以使用它们打开和关闭数据库连接,并且发出查询请求来更新信息。   举个实际的例子:要建立数据库连接,首先应创建Connection对象的实例。例如,下面的脚本创建Connection对象,接着打开数据库连接:   <%    Set cn = Server.CreateObject(″ADODB.Connection″) ′建立一个连接对象    cn.Open ″FILEDSN=MyDatabase.dsn″ ′打开一个DSN文件   %>   然后用 Connection 对象执行查询   <%    strSQL = ″INSERT INTO Customers (FirstName,LastName) VALUES (′Jose′,′Lugo′)″    cn.Execute(strSQL) ′用Execute方法执行这个sql语句   %>   这样就ok了,是不是很简单?接下来就提取出数据进行处理,由于这篇文章只是作介绍,更详细的内容请读者自己学习查看。   网上资源:   官方站点那就去微软的主页上看好了,最新的技术和消息都很全面。   好的中文站点(在网上还是个人站点偏多,这里也不详细列出,都有相应的连接),见^38021009c^表3。 #1 四、PHP简单介绍 (一)语言特点:   还是用最原始的“hello,world”带我们进入php的世界吧:         First program                  现在我们把它最精华的部分取出来:   把上述的代码存成一个文件,fistprogram.php,然后我们用浏览器打开这个文件,你会看到结果如下:   hello,world   我们来简单的介绍一下这个最经典的语句。   表示的这是一段PHP代码,由于PHP是嵌入式的语言,所以这可以用来区别Html语言。   echo是一个函数,如果你学过c或perl,它就类似于print函数,当然引号里面的内容就是要输出的东东了,这里的一个技巧是,用echo输出HTML语句,将会带来很大的方便,如果你曾经学过CGI的话,这应该是轻车熟路了。下面开始正式的语法规则训练。   PHP的语法类似c和perl,如果你学过前面的一种或者其他的语言,语法还是可以轻松掌握。 关于PHP的语法方面的文章可以参考后面的网上资源部分。我自己经常用的一本语法方面的中文手册放在http://202.107.211.171/~air/linux-doc/phpmanual.chm上面,有些功能和函数由于PHP的发展已经得到更多的扩展,你可以多去http://www.php.net上看到最新的资源。 (二)重点难点   1.与数据库的连接:PHP支持很多种数据库的连接,包括大型的如oracle、sybase,其他的如mysql、msql等,现在使用PHP最流行的是与mysql数据库的结合,mysql也是和PHP一样,是一款免费的数据库软件,最新的mysql版本可以从它的官方站点http://www.mysql.com上下载。   与mysql的连接程序示例与解释:   数据库连接      这里主要使用两个函数mysql_connetc和mysql_select_db   mysql_connect建立和MySQL服务器的连接。其中所有的参数都可省略,参数hostname的内定值为localhost、参数username的mysql的用户名称、参数password为用户的密码。   Mysql_select_db选择使用的数据库   查询并且输出结果   $result=mysql_query(″select * from table where 查询条件);   $row=mysql_fetch_row($result);   $mysql_data_seek($result);   主要的三个函数mysql_query,mysql_fetch_row,mysql_data_seek   mysql_query的用途是用来执行一个sql语句,当query查询字串是UPDATE、INSERT及DELETE时,传回的可能是true或者false;查询的字串是SELECT则传回新的ID值。   mysql_fetch_row的用途就是取得一列查询的值,然后以数组的形式输出。   Mysql_data_seek的作用就是如果当查询的数据超过一列的时候,通过列指针移动到新的一列上,然后结合mysql_fetch_row得到新的数据,更多的连接函数与使用功能可以在使用和学习过程中慢慢理解。   2.类的使用:PHP最进步的一点可能就是使用了对象的功能,PHP的对象,和其它的面向对象语言比较起来,还算蛮单纯的。PHP只有类别(class)、方法(method)、属性、以及单一继承(extensions)等。对不习惯使用C++、Java、Delphi等面向对象语言来开发程序的使用者,可以先阅读一下有关面向对象概念的书,相信可以带来许多的收获。当然对于初学者,学习这一部分内容可以作为可选内容,可以随着以后的对PHP语言的进一步了解再继续学习。   网络资源:驰骋在网络中,对于网络资源的掌握对你的学习会有很大的好处,见^38021009d^表4、^38021009e^表5、^38021009f^表6。   总结:作为一个刚开始接触网络编程应用的新手来说,学习PHP或则ASP是非常好的选择,同时根据我自己的经验,在开始学习这方面知识的时候,你首先应该能懂得一些基本的比如操作系统、网页制作(HTML)方面的内容,对于如何选择哪一种语言作为你网络应用的编程语言,应该根据具体的操作系统来选择。根据我自己的经验,如果你使用的是Windows NT操作系统,那么使用ASP应该是你非常好的选择,同样,使用Linux/Unix的应该可以考虑使用PHP,当然,PHP也支持Windows系列的。作为比较好的选择,你可以参考一下下面的应用。   PHP方面的:   操作系统Linux+数据库mysql+Web服务器apache+编程语言phpasp方面的:   操作系统WINNT4.0+数据库sql server+Web服务器IIS+编程语言ASP(vbscript)