标题：Java Web程序设计与项目实践
图书信息
书 名: Java Web程序设计  与项目实践
作　者：古乐声
出版社： 电子工业出版社
出版时间： 2011年6月1日
ISBN: 9787121137556
开本： 16开
定价: 78.00元
内容简介
本书是目前流行的JavaWeb开发的入门教程，由浅入深，循序渐进地讲解了如何使用Java进行Web开发。本书内容包括开发环境的搭建、JSP技术、JavaBean技术、Servlet技术、AJAX技术、Struts2框架、Hibernate框架以及Spring框架。最后通过论坛系统和新闻发布系统来讲解如何使用前面所学进行项目开发。
本书讲解知识全面、重点突出。其中覆盖JavaWeb开发中的各个方面，但是以应用最广的SSH三大框架为重点进行详细讲解。通过本书可以使JavaWeb开发的初学者轻松入门，并且全面了解JavaWeb开发的应用方向和掌握重点内容，从而为以后的项目开发中打下扎实的基础。
图书目录
第1章 Java动态网站开发概述1
1.1 Web运行机制1
1.1.1 Web消息生命周期1
1.1.2 URL简介2
1.1.3 HTTP协议3
1.1.4 HTML静态网页语言3
1.2 从静态到动态的转变4
1.2.1 开发静态网站和应用4
1.2.2 用户和浏览器的动态交互5
1.2.3 用户和服务器的动态交互6
1.2.4 Web 2.0时代的人机交互7
1.3 使用Java开发动态网站——J2EE技术8
1.3.1 Java开发动态网站的优势8
1.3.2 J2EE架构技术选择8
1.4 J2EE开发中的编程思想9
1.4.1 面向对象编程9
1.4.2 面向关系编程10
1.4.3 面向切面编程10
1.5 疑难解答11
第2章 开发工具的选择 和开发环境搭建13
2.1 开发工具的选择13
2.1.1 浏览器13
2.1.2 Web服务器14
2.1.3 数据库管理系统14
2.2 下载和安装JDK 615
2.2.1 下载JDK 615
2.2.2 安装JDK 616
2.2.3 配置环境变量17
2.3 下载和安装Tomcat6.0服务器18
2.3.1 下载Tomcat18
2.3.2 安装Tomcat19
2.3.3 配置虚拟目录20
2.4 下载和安装MySQL数据库20
2.4.1 下载MySQL数据库20
2.4.2 安装MySQL21
2.5 下载和安装MyEclipse6.5集成开发工具22
2.5.1 下载MyEclipse6.5集成开发工具22
2.5.2 安装MyEclipse22
2.6 配置MyEclipse6.5集成开发工具23
2.6.1 集成配置JRE23
2.6.2 集成配置Tomcat24
2.6.3 集成配置MySQL25
2.7 开发一个JavaWeb程序26
2.7.1 使用MyEclipse新建Web项目26
2.7.2 MyEclipse中新建JSP页面27
2.7.3 MyEclipse部署项目27
2.8 疑难解答28
第3章 应用JSP技术 开发动态网站31
3.1 开发一个JSP程序31
3.1.1 编写JSP代码31
3.1.2 JSP代码解析32
3.1.3 JSP运行机制33
3.2 JSP基本语法34
3.2.1 注释34
3.2.2 JSP脚本元素36
3.2.3 JSP指令元素38
3.3 JSP动作指令39
3.3.1 页面包含操作include40
3.3.2 请求转发操作forward42
3.3.3 参数传递操作param42
3.4 JSP主要内置对象43
3.4.1 request请求对象43
3.4.2 response响应对象47
3.4.3 session会话对象49
3.4.4 application应用服务对象51
3.4.5 pageContext页面上下文对象52
3.5 JSTL标签库54
3.5.1 EL表达式54
3.5.2 核心标签库56
3.5.3 格式化标签库59
3.5.4 函数标签库60
3.6 疑难解答67
3.7 上机题68
第4章 JavaBean在JSP 程序中的应用71
4.1 JavaBean简介71
4.2 定义JavaBean72
4.3 在JSP中使用JavaBean73
4.3.1 调用JavaBean73
4.3.2 设置JavaBean属性74
4.3.3 获取JavaBean属性75
4.4 JavaBean范围77
4.5 移除JavaBean78
4.6 使用JavaBean封装JDBC操作79
4.6.1 数据库和数据库表79
4.6.2 公共数据库访问连接类的开发82
4.6.3 DAO接口84
4.6.4 DAO实现类84
4.6.5 DAO工厂类87
4.7 疑难解答94
4.8 上机题95
第5章 Servlet技术97
5.1 什么是Servlet97
5.2 Servlet开发98
5.2.1 开发一个Servlet程序98
5.2.2 Servlet生命周期99
5.2.3 HttpServlet常用方法101
5.3 Filter过滤器开发102
5.3.1 过滤器简介103
5.3.2 实现一个过滤器103
5.3.3 Filter生命周期104
5.3.4 IP地址过滤器105
5.4 Listener监听器开发106
5.4.1 监听器简介106
5.4.2 Servlet上下文监听器107
5.4.3 Http会话监听器和客户端请求监听器109
5.5 疑难解答114
5.6 上机题115
第6章 AJAX+JSP+ Servlet整合开发117
6.1 AJAX简介117
6.2 传统开发模式与AJAX开发模式117
6.2.1 传统Web开发模式118
6.2.2 AJAX开发模式119
6.3 AJAX核心技术120
6.3.1 JavaScript脚本语言120
6.3.2 XMLHttpRequest对象122
6.3.3 DOM文档对象模型124
6.3.4 XML/JSON数据表示技术127
6.4 AJAX开发过程129
6.4.1 创建XMLHttpRequest对象130
6.4.2 定义响应事件处理函数131
6.4.3 发送HTTP请求131
6.5 疑难解答138
6.6 上机题139
第7章 用Struts 2编写一个程序141
7.1 Struts 2框架141
7.1.1 Model 1架构模式141
7.1.2 Model 2架构模式142
7.1.3 常用的MVC框架143
7.1.4 Struts 2框架简介143
7.2 搭建Struts 2开发环境144
7.2.1 下载并安装Struts 2框架144
7.2.2 配置web.xml146
7.2.3 配置struts.xml147
7.3 疑难解答153
7.4 上机题154
第8章 Struts 2类型转换和 输入校验155
8.1 Struts 2类型转换基础155
8.1.1 类型转换的意义155
8.1.2 内建类型转换器简介156
8.1.3 基本数据类型转换器157
8.1.4 基本数据类型的封装类转换器158
8.1.5 数组类型转换器159
8.1.6 集合类型转换器160
8.1.7 日期类型转换器161
8.2 自定义类型转换器162
8.2.1 实现自定义类型转换器163
8.2.2 使用Struts 2提供的StrutsTypeConverter165
8.2.3 注册局部类型转换器166
8.2.4 注册全局类型转换器167
8.2.5 类型转换执行流程168
8.2.6 类型转换中错误处理169
8.2.7 输出指定的错误信息170
8.3 Struts 2输入校验171
8.3.1 输入校验的重要性171
8.3.2 通过实现validate方法完成输入校验172
8.3.3 保存表单提交信息173
8.3.4 使用addFieldError添加错误信息174
8.3.5 Struts 2输入校验流程175
8.4 Struts 2校验框架177
8.4.1 使用校验框架的好处177
8.4.2 编写校验规则文件177
8.4.3 校验器配置风格177
8.4.4 内建校验器注册文件179
8.4.5 常用的内建校验器180
8.5 疑难解答187
8.6 上机题188
第9章 Struts 2拦截器189
9.1 拦截器介绍以及实现原理189
9.1.1 拦截器简介189
9.1.2 拦截器实现原理190
9.2 自定义拦截器191
9.2.1 通过Interceptor接口实现拦截器192
9.2.2 通过AbstractInterceptor类实现拦截器193
9.2.3 配置拦截器193
9.2.4 使用拦截器196
9.2.5 使用默认拦截器197
9.3 深入了解拦截器198
9.3.1 为拦截器传入参数198
9.3.2 配置拦截器栈199
9.3.3 覆盖拦截器栈中指定拦截器的参数201
9.3.4 拦截器执行顺序202
9.4 Struts 2内建拦截器203
9.4.1 内建拦截器介绍203
9.4.2 内建拦截器的配置205
9.5 疑难解答210
9.6 上机题211
第10章 国际化和文件上传213
10.1 JSP页面国际化213
10.1.1 加载全局资源文件完成国际化213
10.1.2 临时指定资源文件完成国际化215
10.1.3 为资源文件传递参数216
10.1.4 资源文件加载顺序217
10.2 Action国际化217
10.2.1 加载全局资源文件完成国际化217
10.2.2 加载包范围资源文件完成国际化219
10.2.3 加载Action范围资源文件完成国际化219
10.2.4 资源文件加载顺序220
10.3 基于Struts 2完成文件上传225
10.3.1 下载并安装Common-FileUpload框架225
10.3.2 配置上传解析器226
10.3.3 实现文件上传控制器227
10.3.4 完成文件上传229
10.4 文件上传高级配置230
10.4.1 动态设置文件上传目录230
10.4.2 限制上传文件大小和类型231
10.4.3 自定义上传错误提示信息231
10.5 疑难解答238
10.6 上机题239
第11章 Struts 2标签库241
11.1 Struts 2标签库概述241
11.1.1 Struts 2标签库的组成241
11.1.3 Struts 2标签库的使用243
11.2 控制标签243
11.2.1 if/elseif/else标签244
11.2.2 iterator标签245
11.2.3 append标签247
11.2.4 merge标签249
11.2.5 generator标签250
11.2.6 subset标签251
11.2.7 sort标签252
11.3 数据标签253
11.3.1 action标签253
11.3.2 bean标签255
11.3.3 date标签256
11.3.4 debug标签257
11.3.5 include标签258
11.3.6 param标签258
11.3.7 property标签259
11.3.8 push标签259
11.3.9 set标签260
11.3.10 url标签261
11.4 表单标签262
11.4.1 简单表单标签262
11.4.2 checkboxlist标签263
11.4.3 combobox标签265
11.4.4 datetimepicker标签265
11.4.5 doubleselect标签266
11.5 疑难解答273
11.6 上机题274
第12章 编写一个Hibernate程序277
12.1 Hibernate概述277
12.1.1 什么是ORM277
12.1.2 为什么要使用ORM278
12.1.3 使用Hibernate框架的优势279
12.2 为项目添加Hibernate支持279
12.2.1 下载和安装Hibernate279
12.2.2. MyEclipse对Hibernate 3的支持280
12.3 Hibernate开发入门281
12.3.1 开发Hibernate程序的基本步骤281
12.3.2 创建数据库表282
12.3.3 创建Hibernate配置文件282
12.3.4 创建会话工厂类283
12.3.5 创建实体类285
12.3.6 创建对象关系映射文件286
12.3.7 完成插入数据287
12.4 疑难解答290
12.5 上机题290
第13章 Hibernate配置和会话291
13.1 配置Hibernate291
13.1.1 使用XML文件配置Hibernate291
13.1.2 使用资源文件配置Hibernate293
13.1.3 代码动态配置Hibernate293
13.2 配置映射文件294
13.2.1 <hibernate-mapping>元素295
13.2.2 <class>元素295
13.2.3 <id>元素296
13.2.4 元素298
13.2.5 其他元素299
13.3 使用Annotations配置映射300
13.3.1 使用@Entity注释实体类300
13.3.2 使用@Table注释实体类300
13.3.3 使用@Id注释实体类标识301
13.3.4 使用@GenerateValue注释覆盖标识的默认访问策略302
13.3.5 使用@GenericGenerator注释生成标识生成器303
13.3.6 使用@Column注释实体类非标识属性303
13.3.7 自定义AnnotationSessionFactory类来获得Session对象304
13.3.8 测试Annotations注释是否成功完成映射305
13.4 会话(Session)的应用306
13.4.1 Hibernate对象状态306
13.4.2 使用save方法持久化对象307
13.4.3 使用saveOrUpdate方法持久化对象308
13.4.4 使用load方法装载对象308
13.4.5 使用get方法装载对象310
13.4.6 使用refresh方法刷新对象310
13.4.7 使用setFlushMode方法设置更新模式311
13.4.8 使用isDirty方法判断数据是否一致311
13.4.9 使用delete方法删除记录312
13.5 疑难解答318
13.6 上机题319
第14章 Hibernate高级映射 和数据检索321
14.1 关联关系映射321
14.1.1 多对一关系映射321
14.1.2 基于多对一关系映射的演示324
14.1.3 一对多关系映射326
14.1.4 基于一对多关系映射的演示327
14.1.5 一对一关系映射328
14.1.6 基于一对一关系映射的演示330
14.2 标准查询API332
14.2.1 查询所有记录332
14.2.2 设置最大记录数333
14.2.3 按条件查询334
14.2.4 使用通配符完成模糊查询334
14.2.5 使用MatchMode完成模糊查询335
14.2.6 对查询结果进行排序335
14.3 HQL基础查询336
14.3.1 使用HQL查询所有记录336
14.3.2 使用Select子句返回指定属性信息337
14.3.3 使用as关键字给实体类起一个别名338
14.3.4 使用Where子句指定查询条件339
14.3.5 指定查询参数来完成查询339
14.3.6 指定查询起始位置和查询最大记录数340
14.4 HQL高级查询341
14.4.1 使用HQL对查询结果进行排序341
14.4.2 使用HQL对查询结果进行分组341
14.4.4 使用HQL执行数据库内置函数342
14.5 疑难解答348
14.6 上机题349
第15章 编写一个Spring程序351
15.1 Spring概述351
15.1.1 为什么使用Spring351
15.1.2 Spring技术介绍352
15.2 Spring开发环境的搭建352
15.2.1 手动搭建352
15.2.2 使用MyEclipse自动搭建353
15.3 开发Spring的HelloWorld程序354
15.3.1 开发Spring程序的步骤354
15.3.2 编写业务接口354
15.3.3 编写业务实现类355
15.3.4 配置业务实现类355
15.3.5 编写客户端程序进行测试356
15.4 疑难解答359
15.5 上机题359
第16章 控制反转361
16.1 IoC容器361
16.1.1 Bean工厂接口361
16.1.2 实例化容器362
16.1.3 多配置文件的使用363
16.1.4 配置Bean363
16.1.5 使用容器实例化Bean364
16.1.6 容器常用方法364
16.2 依赖注入365
16.2.1 Setter方法注入365
16.2.2 构造函数注入366
16.2.3 注入其他Bean368
16.2.4 内部Bean370
16.2.5 注入集合371
16.2.6 空字符串和null值的处理372
16.2.7 依赖注入的简写形式373
16.2.8 不完全依赖373
16.2.9 自动装配373
16.3 Bean作用域374
16.3.1 Singleton作用域374
16.3.2 Prototype作用域375
16.3.3 Request作用域375
16.3.4 Session作用域376
16.3.5 global session作用域376
16.3.6 自定义作用域377
16.4 疑难解答380
16.5 上机题381
第17章 面向切面编程383
17.1 面向切面编程简介383
17.1.1 面向切面编程概念383
17.1.2 面向切面编程的功能384
17.2 使用注解方式进行AOP开发384
17.2.1 启动AspectJ的支持384
17.2.2 声明切面384
17.2.3 声明切入点384
17.2.4 声明通知385
17.3 切入点388
17.3.1 切入点指定者388
17.3.2 合并切入点388
17.3.3 切入点表达式388
17.4 通知389
17.4.1 返回后通知389
17.4.2 出错后通知390
17.4.3 后通知391
17.4.4 环绕通知391
17.4.5 通知顺序392
17.5 使用配置方式进行AOP开发392
17.5.1 配置声明切面392
17.5.2 配置声明切入点393
17.5.3 配置声明通知393
17.6 面向切面编程API介绍396
17.6.1 处理切入点396
17.6.2 处理通知397
17.6.3 使用AOP的工厂Bean398
17.7 在Spring中进行JDBC编程399
17.7.1 Spring中的数据库操作封装类399
17.7.2 数据源接口399
17.7.3 执行SQL语句400
17.7.4 更新数据库操作401
17.7.5 查询数据库操作402
17.8 疑难解答403
17.9 上机题404
第18章 框架技术整合开发405
18.1 Struts 2和Hibernate整合开发405
18.1.1 整合策略405
18.1.2 数据库层开发406
18.1.3 持久层开发406
18.1.3 数据访问层开发407
18.1.4 业务逻辑层开发409
18.1.5 完成书籍的录入411
18.1.6 完成所有图书的显示413
18.2 Struts 2和Spring整合开发415
18.2.1 整合策略415
18.2.2 安装Spring插件完成整合416
18.2.3 装配数据访问层416
18.2.4 装配业务逻辑层416
18.2.5 装配业务控制器417
18.3 Hibernate和Spring整合开发418
18.3.1 使用Spring管理数据源419
18.3.2 使用Spring管理SessionFactory419
18.3.3 使用HibernateTemplate类420
18.3.4 使用HibernateDaoSupport类420
18.3.5 使用编程式的事务管理422
18.3.6 使用Spring管理事务管理器422
18.3.7 为业务逻辑层注入事务管理器422
18.3.8 使用TransactionTemplate进行事务管理423
18.3.9 使用声明式的事务管理424
18.3.10 使用TransactionProxyFactoryBean生成事务代理425
18.4 疑难解答426
18.5 上机题427
第19章 论坛系统429
19.1 系统分析429
19.1.1 需求分析429
19.1.2 功能分析429
19.2 系统设计430
19.2.1 绘制用例图设计系统功能430
19.2.2 绘制系统流程图432
19.3 数据库分析与设计432
19.3.1 数据库逻辑结构设计432
19.3.2 创建数据库及数据表434
19.4 公共类设计435
19.4.1 分页信息类435
19.4.2 分页辅助类436
19.4.3 分页结果类437
19.4.4 用户实体类438
19.4.5 栏目实体类439
19.4.6 子栏目实体类439
19.4.7 主题实体类440
19.4.8 回复实体类441
19.5 用户管理模块442
19.5.1 新增用户442
19.5.2 浏览用户446
19.5.3 删除用户448
19.6 栏目管理模块450
19.6.1 创建新栏目450
19.6.2 查看所有栏目453
19.6.3 删除指定栏目455
19.7 子栏目管理模块457
19.7.1 在栏目下创建子栏目458
19.7.2 查询栏目下所有子栏目461
19.7.3 删除指定子栏目463
19.8 前台功能模块465
19.8.1 指向论坛首页465
19.8.2 显示子栏目中所有主题467
19.8.3 发表新主题470
19.8.4 浏览主题473
19.8.5 对主题进行回复476
第20章 新闻发布系统479
20.1 系统分析479
20.1.1 需求分析479
20.1.2 功能分析479
20.2 系统设计480
20.2.1 绘制用例图设计系统功能480
20.2.2 绘制系统流程图481
20.3 数据库分析与设计482
20.3.1 数据库逻辑结构设计482
20.3.2 创建数据库及数据表483
20.4 公共类设计483
20.4.1 用户实体类483
20.4.2 版面实体类484
20.4.3 新闻实体类485
20.5 系统用户管理模块486
20.6 版面管理模块488
20.6.1 创建新版面489
20.6.2 查看系统中所有版面491
20.6.3 对已有版面进行编辑494
20.6.4 删除指定版面497
20.7 新闻发布管理模块499
20.7.1 发布新闻499
20.7.2 浏览所有新闻502
20.7.3 删除指定新闻504
20.8 前台功能模块506
20.8.1 指向系统首页507
20.8.2 查看版面下所有新闻509
20.8.3 阅读指定新闻511
附录A 赠送项目案例515
01.1 需求分析515
01.2 功能分析515
01.3 数据库分析与设计516
01.3.1 数据库分析516
01.3.2 数据库逻辑结构设计516
01.4 系统演示517
02.1 需求分析519
02.2 功能分析519
02.3 数据库分析与设计520
02.3.1 数据库分析520
02.3.2 数据库逻辑结构设计520
02.4 系统演示521
03.1 需求分析526
03.2 功能分析526
03.3 数据库分析与设计526
03.3.1 数据库分析526
03.3.2 数据库逻辑结构设计527
03.4 系统演示528
04.1 需求分析532
04.2 功能分析532
04.3 数据库分析与设计532
04.3.1 数据库分析532
04.3.2 数据库逻辑结构设计533
04.4 系统演示534
05.1 需求分析538
05.2 功能分析538
05.3 数据库分析与设计538
05.3.1 数据库分析538
05.3.2 数据库逻辑结构设计538
05.4 系统演示539
06.1 需求分析543
06.2 功能分析543
06.3 数据库分析与设计543
06.3.1 数据库分析543
06.3.2 数据库逻辑结构设计544
06.4 系统演示545
07.1 需求分析550
07.2 功能分析551
07.3 数据库分析与设计551
07.3.1 数据库分析551
07.3.2 数据库逻辑结构设计551
07.4 系统演示552
08.1 需求分析557
08.2 功能分析557
08.3 数据库分析与设计557
08.3.1 数据库分析557
08.3.2 数据库逻辑结构设计558
08.4 系统演示558
09.1 需求分析563
09.2 功能分析564
09.3 数据库分析与设计564
09.3.1 数据库分析564
09.3.2 数据库逻辑结构设计565
09.4 系统演示566
10.1 需求分析570
10.2 功能分析571
10.3 数据库分析与设计571
10.3.1 数据库分析571
10.3.2 数据库逻辑结构设571
10.4 系统演示572