1.1 代码基础知识
下面来了解常用网页语言的基础知识。
1.1.1 HTML语言
HTML是一种为普通文件中某些字句加上标示的语言,其目的在于运用标记(tag)使文件达到预期的显示效果。HTML只是标示语言,基本上你只要明白了各种标记的用法,便算学懂了HTML。HTML的格式非常简单,只是由文字及标记组合而成。在编辑方面,任何文字编辑器都可以,只要能将文件另存成.htmI格式即可,当然以专业的网页编辑软件为佳。
设计HTML语言的目的是能把存放在一台计算机中的文本或图形与另一台计算机中的文本或图形方便地联系在一起,形成有机的整体,人们不用考虑具体信息是在当前计算机上还是在网络的其他计算机上。只需使用鼠标在某一文档中点取一个图标,Internet就会马上转到与此图标相关的内容上去,而这些信息可能存放在网络的另一台计算机中。
HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字、图形、动画、声音、表格、链接等。HTML的结构包括头部(Head)、主体(Body)两大部分,其中头部描述浏览器所需的信息,而主体则包含所要说明的具体内容。
另外,HTML是网络的通用语言,一种简单、通用的全置标记语言。它允许网页制作人建立文本与图片相结合的复杂页面,这些页面可以被网上任何其他人浏览到,无论使用的是什么类型的计算机或浏览器。
1.1.2 ASP语言
ASP是Active Server Page的缩写,意为“动态服务器页面”。ASP是微软公司开发的代替CGI脚本程序的一种应用,它可以与数据库和其他程序进行交互,是一种简单、方便的编程工具。ASP网页文件的格式是.asp,现在常用于各种动态网站中。
ASP是一种服务器端脚本编写环境,可以用来创建和运行动态网页或Web应用程序。ASP网页可以包含HTML标记、普通文本、脚本命令以及COM组件等。利用ASP可以向网页中添加交互式内容(如在线表单),也可以创建使用HTML网页作为用户界面的Web应用程序。与HTML相比,ASP网页具有以下特点。
① 利用ASP可以突破静态网页的一些功能限制,实现动态网页技术。
② ASP文件是包含在HTML代码所组成的文件中的,易于修改和测试。
③ 服务器上的ASP解释程序会在服务器端执行ASP程序,并将结果以HTML格式传送到客户端浏览器上,因此使用各种浏览器都可以正常浏览ASP所产生的网页。
④ ASP提供了一些内置对象,使用这些对象可以使服务器端脚本功能更强。例如,可以从Web浏览器中获取用户通过HTML表单提交的信息,并在脚本中对这些信息进行处理,然后向Web浏览器发送信息。
⑤ ASP可以使用服务器端ActiveX组件来执行各种各样的任务,如存取数据库、发送EmaiI或访问文件系统等。
⑥ 由于服务器是将ASP程序执行的结果以HTML格式传回客户端浏览器,因此使用者不会看到ASP所编写的原始程序代码,可防止ASP程序代码被窃取。
⑦ 方便连接ACCESS与SQL数据库。
⑧ 开发需要有丰富的经验,否则会留出漏洞,被骇客(cracker)利用,进行注入攻击。ASP也不仅仅局限于与HTML结合制作Web网站,还可以与XHTML和WML语言结合制作WAP手机网站,其原理也是一样的。
1.1.3 JSP语言
JSP和Servlet放在一起讲,是因为它们都是Sun公司的J2EE(Java 2 platform Enterprise Edition)应用体系中的一部分。
Servlet的形式和前面提到过的CGI差不多,其HTML代码和后台程序是分开的。它们的启动原理也差不多,都是服务器接到客户端的请求后,进行应答。不同的是,CGI对每个客户请求都打开一个进程(Process),而Servlet却在响应第一个请求的时候被载入,一旦Servlet被载入,便处于已执行状态。对于以后其他用户的请求,它并不打开进程,而是打开一个线程(Thread),将结果发送给客户。由于线程与线程之间可以通过生成自己的父线程(Parent Thread)来实现资源共享,这样就减轻了服务器的负担。所以,Java Servlet可以用来做大规模的应用服务。
虽然在形式上JSP和ASP或PHP看上去很相似——都可以被内嵌在HTML代码中。但是,它的执行方式和ASP或PHP完全不同。在JSP被执行的时候,JSP文件被JSP解释器(JSP Parser)转换成Servlet代码,然后Servlet代码被Java编译器编译成.class字节文件,这样就由生成的Servlet来对客户端应答。所以,JSP可以看作Servlet的脚本语言(Script Language)版。
由于JSP/Servlet都是基于Java的,所以它们也有Java语言的最大优点——平台无关性,也就是所谓的“一次编写,随处运行”(WORA - Write Once, Run Anywhere)。除了这个优点,JSP/Servlet的效率以及安全性也是相当惊人的。因此,JSP/Servlet虽然在国内目前的应用并不广泛,但是其前途不可限量。
在调试JSP代码时,如果程序出错,JSP服务器会返回出错信息,并在浏览器中显示。由于JSP是先被转换成Servlet后再运行的,所以,浏览器中所显示的代码出错的行数并不是JSP源代码的行数,而是指转换后的Servlet程序代码的行数。这给调试代码带来一定困难。所以,在排除错误时可以采取分段排除的方法(在可能出错的代码前后输出一些字符串,用字符串是否被输出来确定代码段从哪里开始出错),逐步缩小出错代码段的范围,最终确定错误代码的位置。
1.1.4 PHP语言
PHP的全名非常有趣,它是一个巢状的缩写名称——“PHP: Hypertext Preprocessor”,打开缩写还是缩写。PHP是一种HTML内嵌式的语言 (就像上面讲的ASP那样)。而PHP独特的语法混合了C、Java、Perl以及PHP式的新语法。它可以比CGI或者Perl更快速地执行动态网页。
PHP的源代码完全公开。在Open Source意识抬头的今天,它更是这方面的中流砥柱。不断地有新的函数库加入,以及不停地更新,使得PHP无论在UNIX或是Win32的平台上都可以有更多新的功能。它提供的丰富函数,在程式设计方面有着更好的资源。
平台无关性是PHP的最大优点,但是在优点的背后,还是有一些小小的缺点。如果在PHP中不使用ODBC,而用其自带的数据库函数(这样的效率要比使用ODBC高)来连接数据库的话,使用不同的数据库,PHP的函数名不能统一。这样,使得程序的移植变得有些麻烦。不过,作为目前应用最为广泛的一种后台语言,PHP的优点还是非常明显的。
1.1.5 ASP.NET语言
ASP最新的版本ASP.NET并不完全与ASP早期的版本后向兼容,因为该软件进行了完全重写。早期的ASP技术实际上与PHP的共同之处比与ASP.NET的共同之处多得多,ASP.NET是用于构建Web应用程序的一个完整的框架。这个模型的主要特性之一是选择编程语言的灵活性。ASP.NET可以使用脚本语言(如VBscript、Jscript、Perlscript和Python)以及编译语言(如VB、C#、C、Cobol、Smalltalk和Lisp)。新框架使用通用语言运行环境 (CLR);源代码编译成Microsoft中间语言代码,然后CLR执行这些代码。
这个框架还提供真正的面向对象编程 (OOP),并支持真正的继承、多态和封装。.NET类库根据特定的任务(例如,使用XML或图像处理)组织成可继承的类。
除了编程语言和方法之外,数据库访问也是要着重关心的一个因素。当您用ASP.NET编程时,可以用ODBC来集成数据库;ODBC提供了一组一致的调用函数来访问目标数据库。
ASP.NET的优势很明显在于它简洁的设计和实施。这是面向对象的编程人员的梦想——语言灵活,并支持复杂的面向对象特性。
ASP.NET的另一个优势是其开发环境。例如,开发人员可以使用WebMatrix(一个社区支持的工具)、Visual Studio .NET或各种Borland工具(如Delphi和C++ Builder)。例如, Visual Studio允许设置断点、跟踪代码段和查看调用堆栈。总而言之,它是一个复杂的调试环境。许多其他第三方的ASP.NET IDE解决方案也将必然出现。