进入20世纪90年代以后,随着互联网应用的日益普及,Web已经融入到人们生活的方方面面,Web技术也正在悄悄地影响和改变着人们的工作、生活和思维方式。在软件开发和计算机应用上,基于Web的计算机应用模式正悄然兴起,B/S结构在市场竞争中已经脱颖而出,C/S结构的系统风光不再。现在,无论是企业的电子商务,还是政府办公系统,可以说,80%以上的计算机应用都是基于Web的,使互联网这个现代的信息平台找到了最广阔的应用市场。今天,Web已经成为人们一种基本的技术素养,成为了一种文化现象。
身处教育和IT两个领域,一直对计算机软件技术的发展非常关注,希望所教授的知识和社会的需求紧密相关,培养的学生既有扎实、宽厚、系统的基础理论知识,又有优秀的开发能力。理论和实践的结合需要一个载体,对计算机软件来说,项目是再好不过的载体了。在软件项目的研发中,我们可以对相关的理论知识进行应用验证; 反过来,在软件开发和应用中遇到的问题、难题,又推动了我们对理论问题的研究。
科研和教学就是这样的相辅相成,项目作为一种结合点,推动着科研和教学水平的不断提高。从2001年开始,我们开始了基于B/S三层架构的软件项目的研发工作,开发领域主要是Elearning与知识管理、虚拟实验室,还有一些通用的管理系统,例如会议管理、论文管理、用户服务支持系统等。在这些Web应用的开发中,遇到了许许多多的问题,也积累了很多的经验,有很多的体会。笔者不断地总结着研究和开发中的体会,在通过大学讲台和学生们交流、分享的同时,于2005年探索性地出版了《Web技术导论》一书,其目的就是要在高校中开设一门全面反映Web技术及应用的新的课程,书中的例题和案例大都来源于这些研发项目。2006年该书入选普通高等教育“十一五”国家级规划教材。此后经过三年多的积累和写作,2009年11月出版了《Web技术导论(第2版)》。
光阴荏苒,一晃又是三年过去了,在这三年中,笔者从未放下Web系统的研发工作。从2010年暑期开始直到2011年暑期,笔者利用整整一年的时间重写了“面向过程管理的网络教学平台”的几乎全部代码。从2011年底开始,一个新的Web系统平台,即“高等学校本科教学基本状态数据统计平台”项目已经启动,这是一项新的挑战,也充满着诱惑和快乐。在这些项目的研发中,笔者对Web系统的许多问题有了新的认识和体会。2011年底,“Web技术导论”课程被选为山东大学核心通识课程,同时,该课程也被教育部全国高校教师网培中心选为高校师资培训课程。笔者想在讲课以前,把自己三年来的知识积累写进教材中,这就是写作《Web技术导论(第3版)》的初衷。
本书保留了第2版的结构,几年来的教学实践表明了这种结构的科学性和合理性。但和第2版相比,本书在每一章的内容组织和结构上做了许多调整,例如,第1章增加了HTTP的讲解; 第2章增加了虚拟主机和虚拟目录的知识; 第3章对HTML进行了进一步凝练,加强了XML的讲解; 第5章增加了正则表达式对象的介绍; 第6章增加了SQL一节。对于第2版中许多陈旧的内容、没有实际应用的代码进行了删减。
本书在例题、习题上进行了更加精细的设计,全书共收集和讲解了150多段非常有用的程序代码,内容涉及HTML中的页面布局,CSS和图层的设计和应用,弹出式菜单、树形菜单的设计和不同的实现方法,表单数据的获取,用户输入的有效性验证,数据之间的类型转换,页面之间的参数传递,页面安全,服务端的文件和文件夹操作,数据库的访问和操作,SQL查询,AJAX异步通信等各种实用技术。
本书仍分为6章,主要内容如下。
第1章Web基础。介绍Internet的产生和发展、万维网的概念、HTTP通信原理以及Web应用的概念; 介绍Web相关的核心技术,包括Java技术、XML技术、Web服务等; 然后介绍计算机应用模式C/S架构到B/S架构的演变,以及软件体系架构和开发模式的发展,特别是SOA架构及相关概念; 最后对语义Web等新进展进行概要性介绍。
第2章Web服务器的架设和管理。介绍Web服务器的概念、Web服务器的功能。主要讲解Windows Server 2003中IIS的配置和管理,讲解Apache和Tomcat的功能以及它们的关系、Apache和Tomcat的架设和管理,讲解虚拟主机和虚拟目录的概念及其配置方法。
第3章HTML与XML基础。介绍标记语言的概念; 然后详细介绍HTML
的语法,对CSS技术、图层进行深入讲解,并安排大量的例子解释每个标记的含义和使用; 然后讲解XML的本质特征,剖析了XML和HTML的本质区别; 介绍XML开发工具XML Spy的应用。
第4章网页设计与制作。网页作为Web应用的主要用户界面,在HTML基础上,加强了网页设计的讲解,包括页面功能与内容设计、页面布局设计、页面视觉设计以及页面效果设计等; 然后,介绍可视化制作工具FrontPage的使用。
第5章客户端编程。首先讲解Web浏览器的基本工作原理; 然后讲解客户端脚本程序设计语言JavaScript、浏览器对象模型(BOM)、HTML文档对象模型(DOM)等; 并讲解AJAX技术; 通过四个综合案例,详细讲解JavaScript中菜单的实现、表单数据的有效性验证、表单数据的处理等问题,这些综合案例包含许多Web开发中所需要的代码。
第6章服务端编程。首先介绍B/S三层结构的概念; 然后简单讲解Java程序设计语言基础,介绍Java技术的特点、类与对象、接口、包等基本概念,介绍JavaBeans、Servlet服务器程序的概念,这些概念是开展基于Java技术的服务端编程的基础。
本章的重点是JSP技术和数据库编程。在JSP技术中,讲解JSP的语法、JSP中的数据类型及其转换、JSP内置对象、JSP中的参数传递方法等内容; 然后讲解服务端的数据库编程以及SQL,并给出两个综合性例子; 讲解基于
AJAX技术的在线聊天Web应用的整个开发过程; 最后对常用的Java开发工具进行介绍。
作为互联网的用户和Web技术的开发者和实践者,同时作为一个公司派的高校教师,笔者希望这本书的知识结构和内容对于您了解Internet和WWW、学习Web开发、进行Web编程以及提高Web的应用水平等能有所帮助。也希望其中的大量例子在未来的Web研发中,对编程有所启发,节省宝贵的时间。软件开发是一个积累的过程,让我们一起在这种积累中进步,来享受成功的乐趣。
在本书写作的过程中,非常感谢我的同事巩裕伟、焦文江、杨兴强、韩振、阚铮和李蕴等多位老师的工作和提出的良好建议,还要感谢我的学生苏雪、常跃峰、崔旭、朱岩、田容雨、尤凤英、董颖、张会昌、卢艳萍、田韶存等,他(她)们都参与了我们许多项目的研发工作,编写了大量的程序代码,祝愿他(她)们在以后的工作和生活中一切顺利,祝愿他们取得更大的成绩。还要感谢山东大学本科生院、山东大学研究生院的立项支持,感谢教育部全国高校教师网培中心对本书的厚爱,感谢清华大学出版社付弘宇编辑长期以来对本书的辛勤付出。
由于本书涉及的内容非常广泛,在深度和广度上很难做到完美,同时,也由于笔者的知识面和认识有限,书中肯定存在错误和不足,敬请各位同行和读者批评指正。
课程网址: http://gsl.sdu.edu.cn/。
郝兴伟
2012年春
今天,Internet已经成为一种最基本的社会基础设施,它几乎渗透到了现代社会的每一个角落。无论是IT专业人员、其他工作人员还是一般计算机用户,互联网已经成为人们最主要的通信、获取信息和发布信息的媒体。互联网应用的普及推动了人们对学习和了解Internet相关技术的社会需求。但是,走进书店或在Internet上查询,关于互联网的书籍铺天盖地,令人眼花缭乱。有关的书籍太多,以至于我们无所适从。为此,我想编写一本介绍互联网开发和应用的综合性书籍,使大家对目前的互联网,特别是Web技术,从概念、原理和应用上有一个总体的了解和把握,这就是本书第1版写作的初衷。
从2005年本书第1版的出版到现在,三年过去了,《Web技术导论》一书受到了许多老师的认可,被选作教科书。我也非常高兴地收到了20多位任课教师的邮件,与我交流书中的相关技术,有些老师还非常诚恳地对本书提出了一些良好建议,比如: 增加有关Web服务、SOA等最新Web概念的内容,去掉操作性的多媒体制作章节,等等。这些良好的建议和这几年来我在Web开发中的一些新的认识和体会促使自己决定对第1版进行彻底的修订,增加更多新技术的讲解,特别是Web环境下的软件体系结构、开发模式、设计模式、AJAX技术等新的内容,从而使本书能够紧跟互联网的发展步伐。
本书作为导论性质的书籍,将全面介绍互联网的发展历史、最新的科学进展、Web的工作原理、计算模式和软件体系结构的演变、Web核心技术、互联网语言、Web设计模式、Web客户端开发、Web服务端开发等内容。相信这样的内容安排对大多数读者都会有所帮助。如果你是一个初学者,这本书会为你答疑解惑; 如果你是一个初级的开发人员,这本书可以为你建立一个Web开发的基本框架,引领你进入Web开发的广阔天地; 如果你是一个高级开发人员,本书的综合性内容也会为你阅读其他专业知识做一个基本知识的铺垫。
本书与第1版一样,仍然分成6章,主要内容如下。
第1章Web基础。介绍互联网的发展和相关概念,Web的工作机理以及Java技术、XML、Web服务等Web核心技术; 还介绍计算机软件体系架构的演变和SOA体系架构的思想; 最后介绍Web 2.0和语义Web的发展。
第2章Web服务器的架设和管理。首先介绍操作系统和Web服务器的概念; 然后介绍Windows平台下的Web服务器的架设和管理,主要讲解Windows Server平台中的IIS,对IIS的讲解比较简单,易于理解; 在理解Web服务的管理后,重点讲解Apache Tomcat的架设和管理以及Web应用的部署等,Apache是开发Web应用最常用的运行平台; 最后对Web服务器的远程管理进行讲解。
第3章HTML和XML基础。首先介绍标记语言的概念,介绍HTML
的基本语法,并安排大量实例来说明每种元素的含义和使用; 对HTML和XML的本质区别进行深入的分析和总结; 讲解XML相关的规范,包括可扩展样式语言(XSL)、XML路径语言(XPath)、XML查询语言(XQuery)、可扩展连接语言(XLL)、XML文档对象模型(DOM)与简单应用程序接口(SAX),并对它们之间的关系进行总结,这些内容对大家理解以XML为核心的Web技术具有重要意义。
第4章网页设计与制作。网页是Web应用的主要用户界面,在HTML和XML基础上,加强网页设计的讲解,包括页面功能与内容设计、页面布局设计、页面视觉设计以及页面效果设计等; 然后,介绍可视化的网页制作工具FrontPage。
第5章客户端开发。首先讲解Web浏览器的基本工作原理,然后讲解客户端脚本程序设计语言JavaScript、浏览器对象模型(BOM)、HTML文档对象模型(DOM)、Web交互的内容,增加AJAX技术的讲解,最后详细讲解两个综合性客户端开发实例。
第6章服务端开发。首先介绍B/S三层结构的概念; 然后重点讲解Java技术及其在Web开发中的应用,包括Java程序设计语言、Java Applet、JavaBeans、Servlet服务器程序、JSP技术以及MVC设计模式; 在JSP技术中,讲解JSP的语法、内置对象、数据库操作、图形操作等许多实用的内容; 最后,讲解在线聊天Web应用的整个开发过程,同时对常用的Java开发工具进行介绍。
作为互联网的用户和Web技术的开发者和实践者,同时,作为一
名高校教师,虽然,我的初衷是使本书既包含广泛的理论知识,又有很好的技术内容,但是要真正地将理论和技术结合起来是很困难的。一方面是Web相关的技术实在太多,笔者的知识面和认识有限,加之时间仓促; 再者是考虑到读者的实际应用需求非常多样,很想把一些更实用的软件代码介绍给大家,并进行讲解,但是,受到篇幅的限制,也不能如愿。
在本书写作的过程中,我要感谢我的同事巩裕伟教授,他是一名优秀的老师,总是将计算机技术深入浅出地传授给学生,受到学生的普遍欢迎。同时,他还是一位很好的程序员,编写了大量的Java、JSP、Visual Basic程序和数据库应用系统。另外,他还是一位出色的作者,我们合作出版过许多计算机方面的书籍。同时我要感谢我的同事焦文江老师,他对网络环境有着很深入的研究,对网络设备非常熟悉,对待工作总是认真负责。还要感谢我的学生苏雪、常跃峰、崔旭和朱岩,他们编写了大量的程序代码,祝愿他们在以后的工作和生活中一切顺利,祝愿他们取得更大的成绩。
感谢孟祥旭教授、王海洋教授、马军教授、张彩明教授、徐秋亮教授、龙世立研究员,作为领导、同事和朋友,他们在学术上和事业上都给了我很大的帮助。最后,感谢山东大学研究生院的立项资助。
由于本书涉及的内容非常广泛,在深度和广度上很难做到完美,加之作者水平有限,书中肯定存在错误和不足,敬请读者批评指正。
郝兴伟
2008年暑假
