万维网(World Wide Web,www)使我们的日常生活发生了翻天覆地的变化。在短短15年中,我们已经学会了利用Web完成各种事情--?从平常购买机票到凌晨起来收集高风险的投机交易商业信息。 在过去十年中,全球已经出现了数百万个Web站点,这些站点的发展速度可能会使人们误认为网站的开发技术已经达到极限,甚至有人认为在Web出现之前,这些网站开发技术就已经出现并随时可供使用。此外,还有一些人可能认为数以万计的网站开发人员已经处于失业状态,他们正在等待新的就业机会,而且这些人在网站开发技术出现之初就已经拥有了完成此项庞大构建任务所需的知识和能力。实际上,这两种想法都是错误的。不管是现有企业中的企业家,还是正准备创业的创业者,都非常需要新技术。而且,在这个领域中不断有程序员加入,至少在某种程度上,对程序员的需求缺口有很大一部分被刚从高校毕业的新程序员填满了。其中也有很多人具有软件开发行业的工作经验。但无论如何,所有这些程序员都必须学习使用新的语言和技术。 无论是传统书店,还是Web站点,都有很多针对Web开发技术的书籍,它们一般都是面向具有实践经验的专业人员。但是,在大学的Web编程技术的教学过程中遇到的一个困难是没有一本教科书能够满足需求。绝大多数这方面的书籍都是针对专业人员而不是针对大学生来讨论Web编程。这样的书籍一般都是以专业人员为读者对象,而针对专业人员和针对学生的书籍有很大的区别,主要区别在于作者假设读者已有一定的知识和经验。一方面,专业人员的知识背景区别很大,这就很难做出准确的假设。而面向计算机科学专业的低年级学生编写书籍时,可以对读者的知识背景做出准确假设。 本书就是面向大学生的(不仅是计算机科学专业的学生,也包括至少学习过两门有关编程课程的学生)。尽管本书主要面向学生,但对于那些希望学习Web编程的专业人员也很有帮助。 本书旨在向读者全面介绍建立和维护Web服务器站点所必需的工具和技术,其中大部分技术是用于构建Web站点的。针对这些技术,已经有很多面向专业人员的书籍。比如,现在有很多专门讨论XHTML的书。实际上,对于其他Web技术来说也是一样的。本书简单介绍了Web的工作原理,并讨论了一些应用最广泛的Web技术。 本书的前5版作为科罗拉多大学科罗拉多斯普林司分校(University of Colorado at Colorado Springs)低年级的Web编程课程教材。这门课程的目标是让学生在一个学期内集中掌握不同的编程语言和技术。为了达到这个目标,就必须进行大量的编程练习。首先,在开始阶段,学生必须仅利用XHTML来建立一个基本的静态Web站点。在后期可以利用课程中讨论的新技术为这个静态站点添加功能。最好学生之前已经学习过Java编程、数据结构、C语言和汇编语言,因为这些知识对于本课程的学习很有帮助。事实上有很多学生在学习这门课程之前就已经自学了XHTML的一些相关知识。 学习本书之前,最重要的预备知识是要掌握某种语言的编程技术,而这种语言必须能够支持面向对象编程。对其他编程语言和UNIX有所了解也会对本书的学习有益,如果学习中使用了基于UNIX的Web服务器,情况尤为如此。熟悉其他编程语言也能够使新语言的学习更加容易。 本书结构 本书分为三个部分:简介(第1章)、客户端技术(第2 ~ 8章)以及服务器端技术(第9~15章)。 第1章是本书的基础。主要介绍一些基础知识,包括Internet的历史和本质、World Wide Web、浏览器、服务器、URL、MIME类型和HTTP。本章还简要介绍了本书其余部分中的一些重要主题。 第2章介绍XHTML,包括图片、链接、列表、表格以及表单。其中列举了一些小示例来说明这些XHTML元素。 第3章介绍层叠样式表,CSS是对XHTML标签中指定的内容应用样式的标准方式。考虑到CSS的内容和复杂程度,本章并没有涵盖样式表的所有方面,只介绍了样式表的层次、样式说明格式、选择器格式、属性值和颜色。属性值可以设置字体、列表以及元素边距。本章也将列举一些小示例说明这些内容。 第4章介绍JavaScript的核心概念,JavaScript是一种功能非常强大的语言,可用于多种不同的应用程序中。本书只探讨它在Web编程中的应用。虽然JavaScript已经变得非常庞大和复杂,但是,我们将通过学生掌握的其他编程语言知识来促进对JavaScript的学习。因此,本章将用较短的篇幅来介绍这种编程语言。本章涵盖的主题包括JavaScript的对象模型、控制语句、对象、数组、函数、构造函数以及模式匹配。 第5章讨论JavaScript中与XHTML文档相关的一些特性。这些特性包括基础知识、DOM 2事件以及事件处理模型,它们可以应用于XHTML文档的一些元素中。 JavaScript在Web编程中最有趣的应用,可能就是利用文档对象模型来建立动态的XHTML文档。第6章将描述如何利用JavaScript和DOM实现各种文档的修改。其中包括元素定位;元素移动;修改元素的可见属性;修改文本的颜色、样式与大小;修改标记的内容;修改重叠元素的顺序;缓慢移动元素以及拖放元素。 第7章介绍XML,XML可用于设计与主题相关的标记语言,这些语言可以在一些有着相同需求的用户中共享。本章涵盖的主题包括XML的语法和文档结构、数据类型定义、名称空间和XML模式。接着将介绍如何显示那些同时利用CSS和XML转换方式来控制格式的XML文档。此外,本章还介绍了Web服务和XML处理器。 第8章介绍Flash开发环境,该环境用于创建各种视频和音频演示文件,特别是包括动画的演示文件。本章用一系列示例演示了开发过程,包括绘制图形、创建文本、使用颜色、创建动作和形状动画、添加音轨到演示文件中,以及设计供用户控制Flash影片的组件。 第9章介绍PHP。PHP是目前广泛流行的一种服务器端脚本语言,尤其是作为Web应用程序的数据库访问语言。本章讨论PHP的基础知识,以及Cookie和会话跟踪的用法。PHP作为Web数据库访问语言的应用将在第13章中介绍。 第10章介绍Ajax,这是一种较新的技术,它可以更高效地构建具有大量用户交互的Web应用。除了详细介绍Ajax交互的概念和实现外,本章还讨论了返回文档的格式、Ajax工具包和Ajax安全性,并且通过一些示例演示了Ajax的用法。 第11章讨论Java Web软件。本章介绍构建Java servlet的原理,并利用几个示例来说明servlet如何应用于交互式Web文档。同时介绍并在整个章节中使用了NetBeans框架。之后介绍了使用servlet在客户端中保存信息的方法--?即Cookie,并利用示例加以说明。然后,利用一系列示例来介绍JSP,包括代码隐藏文件的使用。最后讨论了JavaBeans和JavaServer Faces,并通过示例说明它们的用法。 第12章介绍ASP.NET。?本章首先简单介绍.NET框架和C#语言。?接着介绍ASP.NET Web控件和许多ASP.NET事件以及如何处理它们。还讨论了ASP.NET AJAX。最后将介绍利用ASP.NET构建Web服务。还介绍了Visual Studio,并使用它们开发所有ASP.NET示例。 第13章介绍基于Web的数据库访问技术。本章首先将介绍关系数据库的本质、数据库访问的体系结构、结构化查询语言(SQL)以及免费的数据库系统MySQL。然后将讨论三种基于Web的数据库访问技术,即利用PHP、Java JDBC和ASP.NET的数据库访问技术。对于这三种方法都用完整的示例演示。所有示例程序都采用MySQL作为后台数据库。 第14章介绍Ruby编程语言。本章的内容包括标量类型及其操作、控制语句、数组、散列、方法、类、代码块、迭代器以及模式匹配。当然,Ruby的内容不止这些。但是,本章涵盖的内容足以帮助学生使用Ruby构建简单程序和Rails应用程序。 第15章介绍Rails框架,通过此框架可以相对快捷轻松地构建Web应用程序。本章的内容包括简单文档请求(包括静态和动态)、使用数据库的应用程序(包括使用scaffolding)以及支持Ajax技术的Rails。本章使用了与旧版Rails并不兼容的Rails 2.0。 附录A针对熟悉C++语言和面向对象编程的读者介绍了Java语言。不懂Java的学生可以从该附录中学到一些Java方面的知识,这些知识已经足以帮助学生理解本书中的Java applet、servlet、JSP和JDBC。 附录B列出了140多种颜色的名称及其十六进制代码。 附录C将介绍Java applet。首先介绍applet活动和paintComponent方法的基础知识。接下来将讨论标签和applet的参数。然后将介绍如何通过applet创建图像。最后介绍一些可以通过Swing窗口小部件与用户进行交互的applet。 可用资源 Addison-Wesley的网站中提供了本书的一些附加材料。本书所有读者都可以使用的资源包括: ●PowerPoint文件格式的一系列讲稿,这一系列讲稿是根据本书内容针对课堂教学而开发的。 ●示例程序的源代码。 ●Word文档,列出了书中的错误。 其他一些可用资源,包括本书部分习题的答案和书中的图,只对教师们是可用的。 可用软件 本书介绍的绝大部分软件系统都可供学生们免费使用。如浏览器,实际上它是JavaScript解释器和XML解析器。同样,PHP、Ruby和Java语言处理器,以及Rails框架、支持servlet的Java类库和Java JDBC都是免费可得的。?ASP.NET所需的.NET框架支持也可从Microsoft获取。Visual Studio的非商用版本Visual Web Developer 2008可以从Microsoft免费获取。Flash开发环境可以从Adobe获得并免费试用30天。 第5版和第6版的区别 本书的第6版与第5版存在显著区别。第8章对Flash的阐述做了大规模修改,以反映Flash创作环境的CS4版本的变化。 第11章修订为使用NetBeans 6.7开发系统。另外,考虑到当代的Java编码实践,对示例程序做了修改。 第12章修订为使用Visual Studio 8。另外,对Visual Studio的介绍在本章中从后面移到了前面,并用于大多数示例。最后,大幅增加了使用ASP.NET的Web服务的内容。 第13章新增了一节内容,介绍并讨论了从ASP.NET使用ADO.NET和数据控件来访问数据库。 全书对第5版的内容做了大量细致入微的修改,以提高内容的准确性和清晰度。