《Java Web开发技术/21世纪软件工程专业规划教材》涵盖了Java Web开发技术的全部知识点,内容由浅入深,主要包括: Web编程基础、Servlet基础、状态管理与作用域对象、JSP语法基础、过滤器和监听器、JavaBean组件、MVC设计模式、EL表达式、JSP标签、Java Web中的中文乱码处理、异常处理等。 全书结构严谨,层次清晰,语言生动,理论论述精准深刻,程序实例丰富实用。本书要求读者具有Java语言开发编程基础,通过学习本书,读者可以具备使用Java Web技术进行应用开发的能力。 本书不仅适合用作普通高校或者职业培训教材,更是Java Web初学者和程序员的首选参考书。
Java语言以其简单易学、适用范围广泛等优点,成为近年来最为流行的编程语言之一。2013年8月,TIOBE公布了编程语言排行榜,Java语言位列榜首。近年来,Java在TIOBE公布的排名中,始终保持位列三甲的成绩。尤其在Web应用开发方面,Java更具有得天独厚的优势。随着Java语言的推广和应用,各种针对Web开发的Java Web技术也应运而生。本书从Java Web开发的基础技术入手,以实际工程项目为主线,重点讲解了Java Web开发技术知识点在实际项目开发中的应用。
本书是一本既培养学生软件开发技术,又培养学生工程实践能力的教材。教材以IT企业对开发人员技术能力要求为基础,以工程能力培养为目标,梳理了软件工程对计算机语言要求的知识点,并形成相应知识单元;按照工程需求顺序进行课程内容组织,便于学习和掌握;本书提供一定量的案例,注重实践能力的培养。使用本教材,可以提高学生的工程能力和软件开发能力。本书既可以作为计算机类专业各层次学生教材,还可以作为Java Web应用开发者参考用书。
全书共分为11章,章节安排以综合项目工程应用为主线展开,内容讲解由浅入深,层次清晰,通俗易懂。第1章介绍Web编程技术中的相关基础内容,第2章介绍Servlet的定义与特点、编写与配置、工作流程、基本结构与生命周期、编程接口以及Servlet的应用编程,第3章介绍状态存储技术Cookie与Session、作用域对象,第4章介绍JSP基本概念、JSP元素、JSP内置对象、JSP注释以及Java Web程序开发中的路径问题,第5章介绍过滤器和监听器的基本概念、开发、使用,第6章介绍JavaBean的概念、使用和作用域,第7章介绍JSP开发模型和MVC设计模式,第8章介绍EL访问数据、EL内置对象、EL运算符以及禁用EL,第9章介绍自定义标签的开发、配置和使用以及常用JSTL标签的使用,第10章介绍字符编码、Java Web应用开发中中文乱码产生的原因、解决方法,第11章介绍Java Web应用中的异常概述、异常处理一般准则、异常处理以及利用Web服务器对异常的处理。
本书具有以下特点。
(1) 遵照专业教学指导委员会最新计算机科学与技术和软件工程专业及相关专业的培养目标和培养方案,合理安排Java Web开发技术知识体系,结合Java开发技术方向的先行课程和后续课程,组织相关知识点与内容。
(2) 注重理论和实践的结合,教材融入面向对象软件开发过程和工程实践背景的项目案例,使得学生在掌握理论知识的同时提高学生在程序设计过程中分析问题和解决问题的实践动手能力,启发学生的创新意识,使学生的理论知识和实践技能得到全面发展。(3) 每个知识点都包括基础案例、每章都有一个综合案例,知识内容层层推进,使得学生易于接受和掌握相关知识内容。每章综合案例以“大学生成绩管理系统”为基础,以开发过程为主线,将知识点有机地串联在一起,便于学生掌握与理解。
(4) 教材提供配套的课件、例题案例、章节案例和综合案例的源码。
本书由李雷孝、邢红梅和王慧共同编写。其中,李雷孝编写了第4、5、10和11章并统稿,邢红梅编写了第6、7、8和9章,王慧编写了第1、2、3章。在编写过程中,参阅了甲骨文(Oracle)公司、安博教育集团、青岛软件园、上海杰普软件等公司的教学科研成果,也吸取了国内外教材的精髓,对这些作者的贡献表示由衷的感谢。本书在出版过程中,得到了刘利民教授、马志强副教授和刘建兰老师的支持和帮助;还得到了清华大学出版社的大力支持,在此表示诚挚的感谢。本教材受到全国高等学校计算机教育研究会2015年度高等学校计算机教材建设项目资助。
由于作者水平有限,书中难免有不妥和疏漏之处,恳请各位专家、同仁和读者不吝赐教和批评指正。
编者2014年12月
第1章Web编程基础1
1.1软件开发体系结构1
1.1.1C/S体系结构1
1.1.2B/S体系结构1
1.1.3C/S和B/S体系结构的比较2
1.2HTTP2
1.3Web应用程序工作原理3
1.4Web应用开发技术4
1.4.1客户端开发技术4
1.4.2服务器端开发技术5
1.5Java Web开发环境的搭建6
1.5.1Web服务器6
1.5.2Tomcat的安装与启动7
1.5.3集成开发工具MyEclipse与Tomcat的集成9
1.6Java Web项目的创建、目录结构及部署12
1.6.1Java Web项目创建12
1.6.2Java Web项目目录结构13
1.6.3Java Web项目部署14
1.7Java Web应用成功案例简介17
1.8案例19
1.8.1案例设计20
1.8.2案例演示25
1.8.3代码实现25
习题30第2章Servlet基础31
2.1Servlet简介31
2.1.1什么是Servlet31
2.1.2Servlet的特点31
2.2编写第一个Servlet32
2.2.1编写Servlet32
2.2.2配置Servlet33
2.2.3运行Servlet34
2.2.4Servlet的开发步骤与执行流程37
2.3Servlet编程40
2.3.1Servlet API40
2.3.2Servlet的生命周期45
2.3.3Servlet获得初始化参数值50
2.3.4Servlet处理表单52
2.3.5Servlet中的跳转58
2.4案例65
2.4.1案例设计65
2.4.2案例演示66
2.4.3代码实现66
习题70第3章状态管理与作用域对象73
3.1Java Web状态管理73
3.1.1Cookie73
3.1.2Session80
3.2作用域对象89
3.2.1ServletContext89
3.2.2HttpSession91
3.2.3ServletRequest91
3.2.4作用域对象的比较95
3.3案例96
3.3.1案例设计96
3.3.2案例演示96
3.3.3代码实现96
习题99第4章JSP语法基础103
4.1JSP基本概念103
4.2JSP元素103
4.2.1脚本元素103
4.2.2指令元素106
4.2.3动作元素111
4.3JSP内置对象114
4.3.1内置对象概述114
4.3.2内置对象使用115
4.4JSP注释120
4.5Java Web中的路径问题120
4.5.1路径的基本概念120
4.5.2路径相关函数121
4.5.3Java Web开发中经常涉及的路径问题122
4.6案例122
4.6.1案例设计123
4.6.2案例演示123
4.6.3代码实现126
习题143第5章过滤器和监听器146
5.1过滤器146
5.1.1过滤器概述146
5.1.2Filter接口147
5.1.3过滤器开发步骤147
5.1.4过滤器应用举例148
5.2监听器155
5.2.1监听器简介155
5.2.2监听器接口155
5.2.3监听器开发158
5.3案例164
5.3.1案例设计164
5.3.2案例演示165
5.3.3代码实现166
习题172第6章JavaBean组件174
6.1JavaBean的概念174
6.2JavaBean的使用 175
6.2.1175
6.2.2177
6.2.3178
6.3JavaBean的作用范围180
6.4案例185
6.4.1案例设计185
6.4.2案例演示186
6.4.3代码实现187
习题193第7章MVC设计模式196
7.1JSP开发模型196
7.1.1JSP Model 1196
7.1.2JSP Model 2205
7.2MVC设计模式206
7.3案例208
7.3.1案例设计208
7.3.2案例演示209
7.3.3代码实现211
习题225第8章EL表达式227
8.1EL简介227
8.2EL访问数据227
8.2.1访问作用域变量228
8.2.2访问JavaBean属性230
8.2.3访问集合元素232
8.3EL内置对象239
8.4EL运算符247
8.4.1算术运算符247
8.4.2关系运算符248
8.4.3逻辑运算符248
8.4.4条件运算符248
8.4.5empty运算符249
8.5在页面中禁止使用EL表达式249
8.6案例251
8.6.1案例设计251
8.6.2案例演示252
8.6.3代码实现254
习题260第9章JSP标签263
9.1自定义标签263
9.1.1自定义标签简介263
9.1.2标签接口和实现类263
9.1.3自定义标签开发265
9.1.4自定义标签应用举例267
9.2JSTL标签库276
9.3JSTL核心标签库278
9.3.1表达式标签 279
9.3.2流程控制标签283
9.3.3循环标签286
9.3.4url相关标签290
9.4案例294
9.4.1案例设计294
9.4.2案例演示295
9.4.3代码实现297
习题303第10章中文乱码处理306
10.1字符集和字符编码306
10.1.1字符编码目的306
10.1.2字符集与编码分类306
10.2Java Web中的中文乱码处理307
10.2.1中文乱码产生原因307
10.2.2中文乱码问题解决方案308
10.3案例315
10.3.1案例设计315
10.3.2案例演示316
10.3.3代码实现318
习题329第11章Java Web中的异常处理330
11.1Java Web程序异常处理330
11.1.1Java Web异常概述330
11.1.2Java Web异常处理一般准则331
11.1.3Java Web异常处理实例331
11.2Web服务器中处理异常338
11.2.1HTTP状态码拦截339
11.2.2Java异常类型拦截340
11.3案例342
11.3.1案例设计342
11.3.2案例演示343
11.3.3代码实现343
习题355附录A综合案例使用说明357
A.1数据库安装和导入357
A.2开发工具的安装和案例工程导入357
A.3综合案例运行358参考文献359