内容简介
本书全面介绍了建立和维护Web站点必需的工具和技术,包括Internet和万维网的起源与演变、Web客户端和服务器端开发中的基本概念,以及与Web开发相关的主要编程语言和工具等。本书对第4版的内容做了大量细致的修改并且新增了许多内容, 如介绍了Flash 的使用、Ajax 工具包和其安全性, 以及与ASP.NET AJAX的相关内容。◆ Internet简介◆ JavaScript的核心内容◆ JavaScript中与XHTML文档的相关特性◆ Flash开发环境◆ PHP脚本语言◆ Ajax工具包和安全性◆ Ruby编程语言◆ Rails框架信息网站: 和http://www.tupwk.com.cn。
前言 万维网(World Wide Web,www)给我们日常生活带来了翻天覆地的变化。在短短几年中,我们已经学会了利用Web完成各种事情——从平常购买机票到凌晨起来为高风险的投机交易收集商业信息。 当前,全球已经存在数百万个Web站点,这些站点的发展速度可能会使人们误认为网站的开发技术已经到了极限,甚至有的人认为在Web出现之前,这些网站开发技术就已经出现并随时可以使用。此外,还有一些人可能认为数以万计的网站开发人员已经处于失业状态,他们正在等待新的就业机会,而且这些人在网站开发技术刚出现的时候就已经掌握了这些技术。实际上,这两种想法都是错误的。不管是现有企业中的企业家,还是正准备创业的创业者,都非常需要新技术。而且,在这个领域中不断有程序员加入,至少在某种程度上,对程序员的需求缺口有很大一部分被刚从高校毕业的新程序员填满了。其中也有很多人具有软件开发行业的工作经验。但无论如何,所有这些程序员都必须学习使用新的语言和技术。 近来程序员都是通过企业内部培训来学习Web软件开发技术,培训的内容是针对某个特定Web开发技术的一系列课程,可能是学院或者大学中的课程,也可能是企业自己的课程。现在书店有很多针对Web开发技术的书籍,它们一般都是面向具有实践经验的专业人员。在过去的几年里,学院课程看起来涵盖了绝大部分Web开发技术。但是,在教学过程中遇到的一个困难是没有一本教科书能够满足需求。绝大多数这方面的书籍都是针对专业人员而不是针对学生来讨论Web编程。这样的书籍一般都是以专业人员为读者对象,而针对专业人员和学生的书籍有很大的区别,主要区别在于作者假设读者已有一定的知识和经验。专业人员的知识背景区别很大,这就很难做出准确的假设。而面向计算机科学专业的低年级学生编写书籍时,可以对读者的知识背景做出准确的假设。本书就是面向学生的(不仅是计算机科学专业的学生,也包括学习过有关编程课程的学生)。尽管本书主要针对的是学生,但对于那些希望学习Web编程的专业人员也很有帮助。 本书的目标是向读者全面介绍建立和维护Web站点所必需的工具和技术,其中大部分技术是用于构建Web站点的。针对这些技术,已经有很多面向专业人员的书籍。比如,现在有很多专门讨论XHTML的书。实际上,对于其他技术来说也是一样的。本书简单介绍了Web的工作原理,并讨论了一些应用最为广泛的Web技术。 本书的前4版作为科罗拉多大学科罗拉多斯普林司分校(University of Colorado at Colorado Springs)低年级的Web编程课程教材。这门课程的目标是让学生在一个学期内集中掌握不同的编程语言和技术。为了达到这个目标,就必须进行大量的编程练习。首先,在开始阶段,学生必须仅利用XHTML来建立一个基本的静态Web站点。在以后的时间里,可以利用课程中讨论的新技术为这个静态站点添加功能部件。最好学生之前已经学习过Java编程、数据结构和汇编语言,因为这些知识对于本课程的学习很有帮助。也许有学生在学习这门课程之前就已经学习了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的语法和文档结构、数据类型定义、名称空间和模式。接着将介绍如何显示那些同时利用CSS和XML转换方式来控制格式的XML文档。此外,本章还介绍了Web服务和XML处理器。 第8章介绍Flash开发环境,该环境用于创建各种视频和音频演示文件,特别是包括动画的演示文件。本章用一系列的示例演示了开发过程,包括绘制图形、创建文本、使用颜色、创建动作和形状动画,以及添加音轨到演示文件中。 第9章介绍PHP。PHP是目前正广泛流行的一种服务器端脚本语言,尤其是在数据库访问方面。本章讨论PHP的基础知识,以及Cookie和会话跟踪的应用。PHP在Web数据库访问方面的应用将在第13章中介绍。 第10章介绍Ajax,这是一种相对较新的技术,它可以以更高的效率来构建具有大量用户交互的Web应用。除了详细介绍Ajax交互的概念和实现外,本章还讨论了返回文档的格式、Ajax工具包和Ajax安全性,并且通过一些示例演示了使用Ajax的方法。 第11章讨论Java Web软件。本章介绍构建Java servlet的原理,并利用几个示例来说明servlet如何应用于交互式Web文档。同时介绍并使用了NetBeans框架。之后介绍了使用servlet在客户端中保存信息的方法——即cookie,并利用示例进行说明。然后,利用一系列示例来介绍JSP,包括隐藏代码文件的使用。最后,讨论了JavaBean和JavaServer Faces。 第12章介绍ASP.NET。本章首先简单介绍C#语言。接着介绍ASP.NET Web控件和许多ASP.NET事件以及如何处理它们。还讨论了ASP.NET AJAX。最后将介绍利用ASP.NET构建Web服务。 第13章介绍基于Web的数据库访问技术。本章首先将介绍关系数据库的本质、数据库访问的体系结构、结构化查询语言(SQL),以及免费的数据库系统MySQL。然后将讨论两种基于Web的数据库访问技术,即利用PHP和Java JDBC的数据库访问技术。对于这两种方法都用完整的示例演示。所有示例程序都采用MySQL作为后台数据库。 第14章介绍Ruby编程语言。本章的内容包括标量类型及其操作、控制语句、数组、散列、方法、类、代码块和迭代器,以及模式匹配。当然,Ruby的内容不止这些。但是,本章涵盖的内容对于学生使用Ruby构建简单的程序和Rails应用程序已足够了。 第15章介绍Rails框架,通过此框架可以相对快速而轻松地构建Web应用程序。本章的内容包括简单文档请求(包括静态和动态)、使用数据库的应用程序以及采用Ajax技术的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文件格式的讲稿,这组讲稿是根据本书针对课堂教学而开发的。 ● 示例程序的源代码。 ● PowerPoint幻灯片,包含了书中所有的图片。 其他一些可用资源(如本书习题的答案),只对教师们是可用的。 可用软件 本书介绍的绝大部分软件系统对学生们都是可以免费使用的。如浏览器,实际上它是JavaScript解释器和XML解析器。同样,PHP、Ruby和Java语言处理器,以及Rails框架、支持servlet的Java类库和Java JDBC都是免费可得的。ASP.NET所需的.NET框架支持也可以从Microsoft免费获取。Flash开发环境可以从Adobe获得并免费试用30天。 第4版和第5版的区别 本书的第5版与第4版有着显著区别。新增了第8章有关Flash的内容。有关Ajax的章节从原第16章移到了第10章,这也反映该技术正日益变得重要。在此章中,还添加了有关返回文档的格式、Ajax工具包和Ajax安全性的内容。而原第16章中的有关Rails/Ajax的章节移到了第15章中。第12章中添加了有关ASP.NET AJAX的内容。第15章作了较大的修订,其中一部分内容更新为使用Rails 2.0,但该版本与之前版本并不兼容。在本章中还添加了对scaffolding和迁移的讨论。另外,删除了有关Perl和Perl/CGI的章节。 全书对第4版的内容做了大量细致入微的修改,以提高内容的准确性和清晰度。 致谢 本书的审阅者们提出了大量的建议和修改意见,从而进一步提高了本书的质量。具体审阅者有: R.Blank(身兼Almer/Blank公司的CTO、富媒体学院的培训主管以及南加州大学维特比工程学院的教授)、德鲁大学的Barry Burd、宾夕法尼亚州立大学的William Cantor、南伊利诺斯卡本代尔大学的Dunren Che、富迪软件有限公司的Brian Chess、皇家山学院的Randy Connolly、宾夕法尼亚州立大学的Mark DeLuca、伊利诺斯大学的Peter S. Kimble、Professional 的Chris Love、维拉挪瓦大学的Najib Nadi、Russ Olsen、威斯康星大学绿湾分校的Jamel Schiller、田纳西大学查塔努加分校的Stephanie Smullen、宾夕法尼亚大学的J. Reuben Wetherbee,以及哥伦布州立大学的Christopher C. Whitehead。 组稿编辑Matt Goldstein、编辑助理Sarah Milmore、高级生产主管Meredith Gertz和市场营销经理Erin Davis对作者的感谢应该受之无愧,有了他们的鼓励和帮助,作者才能完成本书的手稿。另外,作者还要感谢Aardvark Group的Gillian Hall,作者提交的只是一组文件,是他把这些文件变成了装帧精美的书。