标题：21天学通JavaWeb开发
宣传语
以任务驱动方式讲解，用实例引导读者学习
只需21天，便可轻松掌握ASP．NET编程
基础知识核心技术典型实例综合练习项目案例
192个典型实例、3个项目案例、212个练习题
一线开发人员全程贴心讲解，上手毫不费力
13小时多媒体语音视频教学
本书源代码 + 本书电子教案（PPT）
1000余页编程参考宝典电子书（免费赠送）
内容简介
本书是Java Web开发的基础教程，针对没有接触过或还不是特别熟悉Java Web开发的读者，详细介绍了Java Web开发的基础概念及技术要点。全书分为6篇共21章内容，第一篇为Java Web基础篇，介绍了执行环境和开发环境的搭建及JSP的语法基础。第二篇为JSP 2.0开发篇，介绍了JSP指令元素、JSP动作元素、JSP内置对象、JSP和JavaBean等内容。第三篇为Servlet开发篇，介绍了Servlet的基础知识及Servlet监听器，以及过滤器的开发等内容。第四篇为使用设计模式篇，介绍了DAO和MVC这两个经典设计模式。第五篇为框架技术篇，介绍了Struts 2、Hibernate、Spring这三个目前非常流行的轻量级Java Web开发框架。第六篇为项目实战篇，通过整合前面的三个框架，开发一套用户管理系统。
本书适合Java Web开发技术的初学者，也可作为大、中院校学生和培训班的教材。对于有一定Java Web开发技术基础，但还需要进一步学习的人员，本书也有较大的参考价值。
本书特点
志不强者智不达！
——墨翟 
为什么要写这样一本书
Java Web开发在整个Web开发领域占有重要地位。目前许多的Web应用将Java Web开发作为首选，尤其是大中型Web应用。Java Web从最初的Servlet，发展到后来的JSP，吸引着许多Web开发人员的眼球。目前市面上关于Java Web开发的书籍非常丰富，但是这些书有些过于技术化，入门者根本无法入手，也有部分书籍内容不全，无法让初学者对该技术得到全面的认识。
为了能让初次接触Java Web开发的爱好者快速而又轻松地学会Java Web开发，笔者总结了自己学习Java Web开发的经验，并结合多年实际开发的经验，编写了这本Java Web基础教程。在本书中，笔者从最基础的概念入手，循序渐进地将Java Web开发中的每个技术点展现在读者面前，力求让读者在最短的时间内高效地掌握Java Web开发的基础概念及技术要点。
本书有何特色
1．细致体贴的讲解为了让读者更快地上手，本书特别设计了适合初学者的学习方式，用准确的语言总结概念用直观的图示演示过程用详细的注释解释代码用形象的比方帮助记忆。效果如下：
知识点介绍 准确、清晰是其显著特点，一般放在每一节开始位置，让零基础的读者了解相关概念，顺利入门。
范例 书中出现的完整实例，以章节顺序编号，便于检索和循序渐进地学习、实践，放在每节知识点介绍之后。
范例代码 与范例编号对应，层次清楚、语句简洁、注释丰富，体现了代码优美的原则，有利于读者养成良好的代码编写习惯。对于大段程序，均在每行代码前设定编号便于学习。
运行结果 对范例给出运行结果和对应图示，帮助读者更直观地理解范例代码。
代码解析 将范例代码中的关键代码行逐一解释，有助于读者掌握相关概念和知识。
综合练习 为了便于读者巩固所学内容，本书每章中均提供了综合练习，并给出了操作提示和结果，配合读者自己动手实践。
习题 每章最后提供专门的测试习题，供读者检验所学知识是否牢固掌握，题目的提示或答案放在光盘中。
贴心的提示 为了便于读者阅读，全书还穿插着一些技巧、提示等小贴士，体例约定如下：
提示：通常是一些贴心的提醒，让读者加深印象或提供建议，或者解决问题的方法。
注意：提出学习过程中需要特别注意的一些知识点和内容，或者相关信息。
警告：对操作不当或理解偏差将会造成的灾难性后果做警示，以加深读者印象。
经作者多年的培训和授课证明，以上讲解方式是最适合初学者学习的方式，读者按照这种方式，会非常轻松、顺利地掌握本书知识。
2．实用超值的DVD光盘为了帮助读者比较直观地学习，本书附赠DVD光盘1张，内容包括多媒体视频、电子教案（PPT）、编程参考宝典电子书、各章习题答案和实例源代码等。
多媒体视频
配有长达13小时手把手教学视频，讲解关键知识点界面操作和书中的一些综合练习题。作者亲自配音、演示，手把手教会读者使用。
电子教案（PPT）
本书可以作为高校相关课程的教材或课外辅导书，所以笔者特别为本书制作了电子教案（PPT），以方便老师教学使用。
编程参考宝典电子书
为方便广大读者学习，特别制作了编程开发参考电子书，供读者查阅和参考。
3．提供完善的技术支持本书提供了论坛：http://www．rzchina．net，读者可以在上面提问交流。另外，论坛上还有一些小的教程、视频动画和各种技术文章，可帮助读者提高开发水平。
4．丰富的额外素材下载相关的开发素材文件，在www．broadview．com．cn提供下载。
推荐的学习计划
本书作者在长期从事相关培训或教学实践过程中，归纳了最适合初学者的学习模式，并参考了多位专家的意见，为读者总结了合理的学习时间分配方式，列表如下：
推荐时间安排 自学目标（框内打钩表示已掌握） 难度指数
第1周 第1天 安装JDK，并配置环境变量
安装Tomcat，并配置虚拟目录
安装Eclipse，并安装MyEclipse插件
使用MyEclipse新建Web项目
使用MyEclipse整合Tomcat服务器
使用MyEclipse部署项目 □□□□□□ 
第2天 了解JSP的基本特点
理解JSP的运行机制
熟练使用JSP声明语句
熟练使用JSP Scriptlets
熟练使用JSP表达式 
推荐时间安排 自学目标（框内打钩表示已掌握） 难度指数
第1周 第3天 熟练使用page指令及各属性的配置
熟练使用include指令来包含各种文件
了解使用taglib指令来引入标签库，并定义其前缀
第4天 熟练使用<jsp:include>动作元素来包含文件
熟练使用<jsp:forward>动作元素来实现页面跳转
熟练使用<jsp:param>动作元素来传递参数
了解使用<jsp: plugin >动作元素来执行Applet 
第5天 熟练使用JSP内置对象保存属性
熟练JSP属性保存的四个范围
熟练使用request对象取得参数值
了解其他各对象的常用方法
第6天 熟练掌握加载JDBC驱动程序
熟练掌握连接MySQL数据库
熟练掌握添加、更新、删除记录
熟练掌握获得指定记录
熟练掌握使用PreparedStatement进行数据库操作
第7天 熟练掌握定义JavaBean
熟练掌握在JSP中调用JavaBean
熟练掌握设置并获得JavaBean属性
熟练掌握设置JavaBean的范围
熟练掌握移除JavaBean
第2周 第8天 熟练使用EL运算符
熟练掌握EL内置对象
熟练使用EL存取器
第9天 熟练掌握通过JSTL核心数据库定义变量，输出变量，移除变量
熟练掌握通过数据库标签库完成数据库操作
熟练掌握通过XML标签库完成XML文件操作
熟练掌握通过I18N标签库完成国际化操作
熟练掌握通过JSTL函数标签库完成常用函数操作
第10天 熟练掌握如何定义Servlet
理解Servlet的生命周期
熟练掌握HttpServlet的常用方法
熟练掌握使用Servlet的常用的接口
第11天 熟练掌握如何定义并配置Filter
理解Filter的生命周期
熟练掌握如何添加非法文字过滤器
熟练掌握如何添加字符编码过滤器
熟练掌握如何添加登录验证过滤器
推荐时间安排 自学目标（框内打钩表示已掌握） 难度指数
第2周 第12天 熟练掌握如何定义并配置Listener
熟练掌握ServletContextListener接口的实现和作用
熟练掌握ServletContextAttributeListener接口的实现和作用
熟练掌握HttpSessionListener接口的实现和作用
熟练掌握HttpSessionAttributeListener接口的实现和作用
第13天 了解什么是DAO设计模式及其优点
熟练掌握如何定义数据库连接类
熟练掌握如何定义VO类
熟练掌握如何定义DAO接口、DAO类及DAO工厂类
熟练掌握如何使用DAO实现数据库操作
第14天 了解什么是MVC设计模式
了解Model 1和Model 2的区别及优缺点
熟练掌握如何定义视图部分
熟练掌握如何定义模型部分
熟练掌握如何定义控制器部分
第3周 第15天 了解如何下载并安装Struts 2框架
熟练掌握如何新建控制器
熟练掌握如何配置控制器
了解实现Action接口的优点
熟练掌握通过Struts 2标签库简化表单
熟练掌握通过继承ActionSupport完成输入校验
熟练掌握页面国际化及校验错误信息国际化
第16天 熟练使用Struts 2内建的类型转换器
理解服务器端校验的重要性
熟练使用addFieldError来添加校验错误信息
熟练使用Struts 2校验框架完成输入校验
第17天 了解什么是ORM映射及其特点
熟练掌握配置Hibernate配置文件
熟练掌握创建持久化类
熟练掌握创建关系映射文件
熟练掌握通过Hibernate框架进行数据库操作
第18天 熟练掌握持久层设计
熟练掌握业务逻辑层设计
熟练掌握Struts 2和Hibernate的整合开发
第19天 熟练掌握Spring的依赖注入
熟练掌握Spring的自动装配
熟练掌握Spring的面向切面编程
续表 
推荐时间安排 自学目标（框内打钩表示已掌握） 难度指数
第3周 第20天 熟练掌握依赖注入DAO组件
熟练掌握依赖注入业务逻辑组件
熟练掌握Struts 2和Spring的整合
第21天 熟练掌握Hibernate持久层设计
熟练掌握DAO层设计
熟练掌握业务逻辑层设计
熟练掌握SSH整合开发
本书适合哪些读者阅读
本书非常适合以下人员阅读：
从未接触过Java Web开发技术的人员；
有一定Java Web开发技术基础，但还需要进一步学习的人员；
其他编程爱好者。
本书作者 
2009年1月
目 录
第一篇 Java Web基础篇第1章 搭建开发环境（教学视频：53分钟） 1
1.1 下载并安装JDK 1
1.1.1 下载JDK 1
1.1.2 安装JDK 3
1.1.3 配置环境变量 4
1.1.4 一个简单的Java程序 5
1.2 下载并安装Tomcat 6
1.2.1 下载Tomcat 6
1.2.2 安装Tomcat 6
1.2.3 配置虚拟目录 8
1.2.4 一个简单的JSP程序 8
1.3 下载并安装Eclipse 8
1.3.1 下载Eclipse 9
1.3.2 安装Eclipse 9
1.4 下载并安装MyEclipse 9
1.4.1 下载MyEclipse 10
1.4.2 安装MyEclipse 10
1.5 使用MyEclipse进行Web开发 11
1.5.1 使用MyEclipse新建Web项目 11
1.5.2 MyEclipse中新建JSP页面 12
1.5.3 MyEclipse整合Tomcat 13
1.5.4 MyEclipse部署项目 16
1.6 小结 17
第2章 JSP的基础语法（教学视频：27分钟） 18
2.1 JSP简介 18
2.2 JSP运行机制 19
2.3 JSP脚本元素 20
2.3.1 JSP声明语句 21
2.3.2 JSP Scriptlets 21
2.3.3 JSP表达式 22
2.4 注释 23
2.5 综合练习 24
2.6 小结 26
2.7 习题 26
第二篇 JSP 2.0开发篇第3章 JSP指令元素（教学视频：37分钟） 28
3.1 page指令 28
3.1.1 language属性 28
3.1.2 extends属性 29
3.1.3 import属性 29
3.1.4 session属性 30
3.1.5 buffer属性 30
3.1.6 autoFlush属性 30
3.1.7 isThreadSafe属性 30
3.1.8 info属性 30
3.1.9 errorPage属性 31
3.1.10 isErrorPage属性 31
3.1.11 contentType属性 31
3.1.12 pageEncoding属性 32
3.1.13 isELIgnored属性 33
3.2 include指令 33
3.2.1 包含文本文件 33
3.2.2 包含HTML文件 35
3.2.3 包含JSP文件 36
3.3 taglib指令 37
3.4 综合练习 38
3.5 小结 39
3.6 习题 39
第4章 JSP动作元素（教学视频：31分钟） 41
4.1 JSP动作元素分类 41
4.2 <jsp:include>动作元素 41
4.2.1 使用<jsp:include>动作元素包含静态的文件 42
4.2.2 使用<jsp:include>动作元素包含动态的文件 42
4.2.3 <jsp:include>和<%@ include%>的区别 43
4.3 <jsp:forward>动作元素 45
4.3.1 使用<jsp: forward >动作元素实现页面跳转 45
4.3.2 跳转执行流程 46
4.4 <jsp:param>动作元素 47
4.4.1 <jsp:include>动作元素搭配<jsp:param>动作元素 47
4.4.2 <jsp:forward>动作元素搭配<jsp:param>动作元素 49
4.5 <jsp:plugin>、<jsp:params>和<jsp:fallback> 51
4.5.1 <jsp:plugin>动作元素 51
4.5.2 <jsp:params>动作元素 53
4.5.3 <jsp:fallback>动作元素 54
4.6 综合练习 55
4.7 小结 56
4.8 习题 56
第5章 JSP内置对象（教学视频：51分钟） 58
5.1 JSP内置对象分类 58
5.2 属性保存范围 59
5.2.1 page范围 59
5.2.2 request范围 60
5.2.3 session范围 62
5.2.4 application范围 64
5.2.5 移除属性 65
5.3 request对象 66
5.3.1 获得客户端请求参数 66
5.3.2 获得所有的参数名称 68
5.3.3 获得参数的所有参数值 70
5.3.4 获得封装所有参数值的Map 71
5.3.5 request对象的其他方法 72
5.4 response对象 73
5.4.1 实现页面跳转 73
5.4.2 实现页面自动刷新 74
5.4.3 实现页面自动跳转 74
5.5 out对象 75
5.5.1 使用out对象进行页面输出 75
5.5.2 使用out对象求得缓冲区使用大小 76
5.6 session对象 77
5.6.1 设置并获得session生命周期 77
5.6.2 获得session的其他信息 78
5.7 application对象 79
5.7.1 通过application对象获得服务器版本 79
5.7.2 通过application对象获得其他信息 80
5.8 pageContext对象 81
5.9 page对象 82
5.10 config对象 83
5.11 exception对象 83
5.12 综合练习 85
5.13 小结 87
5.14 习题 87
第6章 数据库操作（教学视频：9分钟） 89
6.1 下载并安装MySQL 89
6.1.1 下载MySQL 89
6.1.2 安装MySQL 90
6.2 JDBC驱动程序 90
6.2.1 下载并安装MySQL的JDBC驱动程序 90
6.2.2 加载JDBC驱动程序 91
6.3 JDBC连接MySQL数据库 92
6.3.1 创建数据库和数据表 92
6.3.2 连接MySQL数据库 93
6.4 语句对象Statement 94
6.4.1 添加记录 95
6.4.2 更新记录 96
6.4.3 删除记录 97
6.5 ResultSet结果集 98
6.5.1 获得所有记录 98
6.5.2 获得指定字段记录 100
6.5.3 获得指定起始位置和条数的记录 101
6.6 数据库的关闭操作 102
6.7 预处理语句对象PreparedStatement 103
6.7.1 添加记录 104
6.7.2 更新记录 105
6.7.3 删除记录 107
6.7.4 获得指定记录 108
6.8 综合练习 110
6.9 小结 112
6.10 习题 112
第7章 JSP和JavaBean（教学视频：34分钟） 113
7.1 JavaBean简单使用 113
7.1.1 JavaBean简介 113
7.1.2 定义JavaBean 113
7.1.3 在JSP中调用JavaBean 114
7.2 设置JavaBean属性 115
7.2.1 根据所有参数设置JavaBean属性 115
7.2.2 根据指定参数设置JavaBean属性 117
7.2.3 根据指定参数设置指定JavaBean属性 118
7.2.4 设置指定JavaBean属性为指定值 119
7.3 获得JavaBean属性 120
7.4 设置JavaBean的范围 121
7.4.1 设置page范围的JavaBean 121
7.4.2 设置request范围的JavaBean 122
7.4.3 设置session范围的JavaBean 123
7.4.4 设置application范围的JavaBean 125
7.5 移除JavaBean 126
7.6 综合练习 128
7.7 小结 129
7.8 习题 129
第8章 EL表达式（教学视频：49分钟） 131
8.1 EL运算符 131
8.1.1 算术运算符 131
8.1.2 关系运算符 132
8.1.3 逻辑运算符 133
8.1.4 条件运算符 135
8.1.5 验证运算符 136
8.1.6 括号运算符及运算符的优先级 137
8.2 EL内置对象 138
8.2.1 .与[ ]运算符 138
8.2.2 与存储有关的内置对象 139
8.2.3 与输入有关的内置对象 140
8.2.4 cookie内置对象 141
8.2.5 header内置对象 143
8.2.6 initParam内置对象 143
8.2.7 pageContext内置对象 144
8.3 EL存取器 145
8.3.1 使用存取器读取JavaBean中的数据 145
8.3.2 使用存取器读取Map中的数据 148
8.3.3 使用存取器读取数组中的数据 149
8.3.4 存取器复杂应用 150
8.4 综合练习 151
8.5 小结 153
8.6 习题 153
第9章 JSTL标签库（教学视频：75分钟） 155
9.1 JSTL核心标签 155
9.1.1 <c:set>标签 155
9.1.2 <c:out>标签 155
9.1.3 <c:remove>标签 156
9.1.4 <c:if>标签 157
9.1.5 <c:choose>、<c:when>、<c:otherwise>标签 157
9.1.6 <c:forEach>标签 158
9.1.7 <c:forTokens>标签 159
9.1.8 <c:import>标签 159
9.1.9 <c:param>标签 159
9.1.10 <c:url>标签 160
9.1.11 <c:redirect>标签 160
9.2 数据库标签库 160
9.2.1 <sql:setDataSource>标签 161
9.2.2 <sql:update>标签 161
9.2.3 <sql:query>标签 162
9.2.4 <sql:param>和<sql:dateParam>标签 164
9.2.5 <sql:transaction >标签 165
9.3 I18N格式化标签库 166
9.3.1 <fmt: formatNumber>标签 166
9.3.2 <fmt: parseNumber>标签 168
9.3.3 <fmt: formatDate>标签 168
9.3.4 <fmt: parseDate>标签 169
9.3.5 <fmt: setTimeZone>标签 169
9.3.6 <fmt: timeZone>标签 170
9.3.7 <fmt: setLocale>标签 170
9.3.8 <fmt: requestEncoding>标签 171
9.3.9 <fmt: setBundle>标签 171
9.3.10 <fmt: message>标签 171
9.3.11 <fmt: param> 172
9.3.12 <fmt: bundle> 172
9.4 XML标签库 172
9.4.1 下载并安装进行XML操作必需的JAR文件 172
9.4.2 <x:parse>标签 173
9.4.3 <x:out>标签 174
9.4.4 <x:set>标签 175
9.4.5 <x:if>标签 175
9.4.6 <x:choose>标签 176
9.4.7 <x:forEach>标签 177
9.5 综合练习 177
9.6 小结 178
9.7 习题 178
第三篇 Servlet开发篇第10章 Servlet开发基础（ 教学视频：41分钟） 180
10.1 Servlet基础 180
10.1.1 Servlet简介 180
10.1.2 第一个Servlet程序 180
10.1.3 Servlet生命周期 181
10.2 HttpServlet常用方法 182
10.2.1 doGet方法 182
10.2.2 doPost方法 184
10.2.3 service方法 185
10.3 Servlet常用接口 187
10.3.1 HttpServletRequest接口 187
10.3.2 HttpServletResponse接口 189
10.3.3 HttpSession接口 190
10.3.4 ServletContext接口 192
10.4 综合练习 194
10.5 小结 195
10.6 习题 195
第11章 Filter开发（教学视频：41分钟） 197
11.1 Filter基础 197
11.1.1 Filter简介 197
11.1.2 第一个Filter程序 197
11.1.3 Filter生命周期 198
11.2 常用Filter 199
11.2.1 非法文字过滤器 200
11.2.2 字符编码过滤器 202
11.2.3 登录验证过滤器 204
11.3 综合练习 207
11.4 小结 208
11.5 习题 208
第12章 Listener开发（ 教学视频：26分钟） 209
12.1 Listener简介 209
12.2 ServletContext Listener 209
12.2.1 ServletContextListener接口 209
12.2.2 ServletContextAttributeListener接口 210
12.3 HttpSession Listener 212
12.3.1 HttpSessionListener接口 212
12.3.2 HttpSessionAttributeListener接口 213
12.4 综合练习 214
12.5 小结 217
12.6 习题 217
第四篇 使用设计模式篇第13章 DAO设计模式（教学视频：21分钟） 219
13.1 DAO简介 219
13.2 DAO各部分详解 219
13.2.1 数据库连接类 219
13.2.2 VO类 220
13.2.3 DAO接口 221
13.2.4 DAO实现类 222
13.2.5 DAO工厂类 224
13.3 使用DAO完成数据库操作 225
13.3.1 添加记录 225
13.3.2 更新记录 226
13.3.3 删除记录 226
13.3.4 按ID查询记录 227
13.4 综合练习 228
13.5 小结 229
13.6 习题 229
第14章 MVC设计模式（教学视频：22分钟） 230
14.1 MVC简介 230
14.2 Model 1和Model 2 230
14.3 使用MVC模式改进用户登录案例 232
14.3.1 用户登录页面 232
14.3.2 用户登录成功和失败页面 233
14.3.3 业务逻辑组件 234
14.3.4 Servlet控制器 234
14.4 综合练习 236
14.5 小结 238
14.6 习题 238
第五篇 框架技术篇第15章 Struts 2基础（教学视频：41分钟） 239
15.1 Struts 2简介 239
15.2 Struts 2框架的下载和安装 240
15.2.1 下载Struts 2框架 240
15.2.2 安装Struts 2框架 241
15.3 基于Struts 2框架实现登录案例 242
15.3.1 准备工作 242
15.3.2 新建控制类Action 242
15.3.3 配置Action 243
15.3.4 程序执行流程 244
15.4 改进控制器 244
15.4.1 实现Action接口 245
15.4.2 配置Action 246
15.5 完成输入校验 246
15.5.1 使用Struts 2标签库简化表单 246
15.5.2 继承ActionSupport完成输入校验 248
15.6 程序国际化 250
15.6.1 输出中文的校验错误信息 250
15.6.2 国际化资源文件 251
15.6.3 加载资源文件 253
15.6.4 输出国际化信息 253
15.6.5 输出国际化的校验错误信息 255
15.7 综合练习 256
15.8 小结 257
15.9 习题 257
第16章 Struts 2高级应用（教学视频：51分钟） 259
16.1 Struts 2内建的类型转换器 259
16.1.1 内建转换器介绍 259
16.1.2 基本数据类型转换器 259
16.1.3 基本数据类型的封装类转换器 263
16.1.4 数组类型转换器 265
16.1.5 集合类型转换器 267
16.2 服务器端校验 268
16.2.1 服务器端校验的重要性 268
16.2.2 完成服务器端输入校验 269
16.2.3 使页面保留提交信息 273
16.2.4 使用addFieldError来添加错误信息 275
16.2.5 输入校验与类型转换关系 278
16.3 使用校验框架完成输入校验 279
16.3.1 完成输入校验 279
16.3.2 增加客户端校验 284
16.3.3 国际化提示信息 286
16.3.4 客户端校验与国际化问题 288
16.3.5 校验短路 291
16.3.6 校验规则文件搜索规则 293
16.4 综合练习 294
16.5 小结 294
16.6 习题 295
第17章 持久化框架Hibernate（教学视频：35分钟） 296
17.1 初涉Hibernate 296
17.1.1 ORM简介 296
17.1.2 Hibernate框架的优势 297
17.1.3 下载和安装Hibernate 297
17.1.4 Hibernate架构概述 297
17.2 Hibernate的配置和相关类 299
17.2.1 Configuration类 299
17.2.2 Hibernate配置文件 299
17.2.3 SessionFactory类 300
17.3 Hibernate中的对象 300
17.3.1 对象在Hibernate中的状态 301
17.3.2 持久化类 302
17.3.3 对象识别 303
17.4 Hibernate开发 303
17.4.1 创建Hibernate配置文件 303
17.4.2 创建持久化类 304
17.4.3 创建对象关系映射文件 305
17.4.4 创建数据库表 306
17.4.5 插入数据 307
17.4.6 更新数据 308
17.4.7 删除数据 309
17.4.8 查询数据 310
17.4.9 使用Hibernate工具类 312
17.5 综合练习 313
17.6 小结 314
17.7 习题 314
第18章 Struts 2整合Hibernate开发（教学视频：28分钟） 315
18.1 Struts 2和Hibernate的整合策略 315
18.2 持久层设计 316
18.2.1 DAO接口 316
18.2.2 DAO实现类 316
18.2.3 DAO工厂类 318
18.3 业务逻辑组件 318
18.3.1 业务逻辑组件接口 319
18.3.2 业务逻辑组件实现类 319
18.3.3 业务逻辑组件工厂类 320
18.4 整合应用 321
18.4.1 查询所有产品 321
18.4.2 添加产品 323
18.4.3 删除产品 325
18.4.4 更新产品 326
18.5 小结 328
18.6 习题 328
第19章 Spring开发（教学视频：39分钟） 329
19.1 初探Spring 329
19.1.1 Spring简介 329
19.1.2 下载和安装Spring 330
19.1.3 Spring的IoC应用 331
19.2 Spring的依赖注入 334
19.2.1 通过Set方法注入依赖 334
19.2.2 引用其他的Bean 336
19.2.3 使用构造函数注入依赖 338
19.3 Spring的自动装配 339
19.3.1 自动装配分类 340
19.3.2 byName自动装配 340
19.3.3 byType自动装配 341
19.3.4 constructor自动装配 341
19.4 Spring核心理论：面向切面编程介绍 342
19.4.1 面向切面编程基础知识 342
19.4.2 在Spring中创建前置通知 343
19.4.3 在Spring中创建后置通知 345
19.4.4 在Spring中创建拦截通知 347
19.4.5 在Spring中创建异常通知 349
19.4.6 使用Spring静态切入点 351
19.5 综合练习 351
19.6 小结 353
19.7 习题 353
第20章 Struts 2整合Spring开发（教学视频：32分钟） 354
20.1 安装Spring插件完成整合 354
20.2 整合策略 354
20.3 整合Spring完成登录案例 356
20.3.1 修改控制器Action及配置 356
20.3.2 依赖注入业务逻辑组件 356
20.4 整合Spring完成产品管理案例 357
20.4.1 使用Spring容器管理SessionFactory 357
20.4.2 使用HibernateTemplate进行数据库操作 358
20.4.3 依赖注入DAO组件 359
20.4.4 依赖注入业务逻辑组件 360
20.4.5 完成Action配置 363
20.5 小结 363
20.6 习题 364
第六篇 项目实战篇第21章 SSH整合开发用户管理系统 365
21.1 系统分析 365
21.1.1 应用背景及系统功能介绍 365
21.1.2 系统结构 365
21.1.3 系统功能模块 366
21.2 Hibernate持久层设计 366
21.2.1 创建持久化PO类 366
21.2.2 创建映射文件 367
21.3 DAO层设计 368
21.3.1 Spring管理SessionFactory 368
21.3.2 创建DAO接口 369
21.3.3 创建DAO实现类 369
21.3.4 配置DAO组件 370
21.4 业务逻辑层设计 370
21.4.1 创建业务逻辑组件接口 370
21.4.2 创建业务逻辑组件实现类 370
21.4.3 配置业务逻辑组件 371
21.5 完成查看所有用户信息模块 372
21.5.1 整合Struts 2和Spring 372
21.5.2 创建查看全部用户信息控制器 372
21.5.3 创建全部用户信息显示页 373
21.5.4 配置查看全部用户信息控制器 373
21.5.5 测试查看所有用户信息 374
21.6 完成查看用户详细信息模块 374
21.6.1 创建查看用户详细信息控制器 374
21.6.2 创建查看用户详细信息显示页 375
21.6.3 配置用户详细信息控制器 376
21.6.4 测试查看用户详细信息 376
21.7 完成添加用户模块 376
21.7.1 创建用户添加页 376
21.7.2 创建用户添加控制器 377
21.7.3 配置用户添加控制器 378
21.7.4 创建校验规则文件 378
21.7.5 测试添加用户 380
21.8 完成删除用户模块 381
21.8.1 创建用户删除控制器 381
21.8.2 配置用户删除控制器 381
21.8.3 测试删除用户 382
21.9 完成更新用户模块 382
21.9.1 创建用户更新页 382
21.9.2 创建用户更新控制器 383
21.9.3 配置用户更新控制器 384
21.9.4 创建校验规则文件 384
21.9.5 测试更新用户 384
21.10 小结 385