《开发宝典丛书 Java Web编程实战宝典-JSP+Servlet+Struts 2+Hibernate+Spring+Ajax》PDF下载

  • 购买积分:23 如何计算积分?
  • 作  者:李宁,刘岩,张国平等编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2014
  • ISBN:7302347958
  • 页数:869 页
图书介绍:

第1篇 Web开发基础篇 2

第1章 搭建开发环境(教学视频:23分钟) 2

1.1 各种软件和框架的版本 2

1.2 下载与安装JDK 7 2

1.3 下载与安装Eclipse 4 3

1.4 下载与安装MyEclipse 10 4

1.5 下载与安装Eclipse IDE for Java EE Developers 5

1.6 下载与安装Tomcat 7 5

1.7 在MyEclipse 中配置Tomcat 7

1.8 在Eclipse IDE for Java EE Developers 中配置Tomcat 8

1.9 下载与安装MySQL5数据库 8

1.10 下载与安装数据库客户端软件SQLyog 9

1.11 小结 10

1.12 实战练习 10

第2章 Java Web应用开发基础(教学视频:14分钟) 11

2.1 Web技术的发展 11

2.2 了解Java Web技术 14

2.2.1 认识Java Web程序的基本组成 14

2.2.2 认识Java Web程序的目录结构 14

2.2.3 了解Java Web程序的配置文件 15

2.3 了解MVC模式与MVC框架 15

2.3.1 认识JSP模型1和JSP模型2 15

2.3.2 认识Web应用程序的基础服务 16

2.3.3 MVC模式概述 17

2.3.4 了解常用的MVC框架 18

2.4 小结 19

2.5 实战练习 19

第3章 Web开发必会的客户端技术(教学视频:82分钟) 20

3.1 学习客户端技术的开发工具 20

3.1.1 在MyEclipse中使用HTML技术 20

3.1.2 在MyEclipse中使用JavaScript技术 21

3.1.3 在MyEclipse中使用CSS技术 22

3.2 学习超文本标签语言HTML 23

3.2.1 HTML基本构成 24

3.2.2 HTML基本标签——段落格式设置标签 25

3.2.3 HTML基本标签——超级链接标签 26

3.2.4 HTML基本标签——图像标签 27

3.2.5 HTML基本标签——表格标签 29

3.2.6 HTML基本标签——框架标签 30

3.2.7 HTML基本标签——表单标签 32

3.3 学习JavaScript技术 34

3.3.1 实例:编写第一个JavaScript程序:Greet 34

3.3.2 学习变量 35

3.3.3 学习原始类型 36

3.3.4 掌握类型转换 40

3.3.5 学习函数与函数调用 42

3.3.6 学习类和对象 44

3.4 其他客户端技术 46

3.4.1 了解DOM 46

3.4.2 获得HTML元素的3种方法 48

3.4.3 实例:图像自动切换 50

3.4.4 了解正则表达式 52

3.4.5 实例:表格排序 53

3.5 学习CSS技术 56

3.5.1 了解CSS 56

3.5.2 在Style属性中定义样式 57

3.5.3 在HTML中定义样式 57

3.5.4 在外部文件中定义样式 58

3.5.5 实现样式的继承 59

3.6 学习AJAX技术 59

3.6.1 了解AJAX技术 59

3.6.2 实例:使用XMLHttpRequest获得Web资源 60

3.6.3 实例:使用XMLHttpRequest跨域访问Web资源 61

3.6.4 实例:AJAX的3种交换数据方法 62

3.7 小结 64

3.8 实战练习 65

第4章 Java Web的核心技术——Servlet(教学视频:79分钟) 66

4.1 编写Servlet的Helloworld程序 66

4.1.1 实例:用MyEclipse工具编写第一个Servlet程序——Helloworld 66

4.1.2 实例:手工编写第一个Servlet程序——Helloworld 70

4.2 学习Servlet技术 72

4.2.1 配置Tomcat7服务器的数据库连接池 72

4.2.2 实例:通过数据库连接池连接MySQL数据库 74

4.2.3 实例:处理客户端HTTP GET请求——doGet方法 76

4.2.4 实例:处理客户端HTTP POST请求——doPost方法 77

4.2.5 实例:处理客户端各种请求——service方法 78

4.2.6 实例:初始化(init)和销毁(destroy)Servlet 80

4.2.7 实例:输出字符流响应消息——PrintWriter类 82

4.2.8 实例:输出字节流响应消息——ServletOutputStream类 83

4.2.9 实例:包含Web资源——RequestDispatcher.include方法 84

4.2.10 实例:转发Web资源——RequestDispatcher.forward方法 86

4.3 掌握HttpServletResponse类 88

4.3.1 产生状态响应码 88

4.3.2 设置响应消息头 89

4.3.3 实例:验证响应消息头设置情况 91

4.4 掌握HttpServletRequest类 92

4.4.1 获取请求行消息 92

4.4.2 获取网络连接消息 93

4.4.3 获取请求头消息 94

4.5 处理Cookie 94

4.5.1 什么是Cookie 94

4.5.2 认识操作Cookie的方法 95

4.5.3 实例:通过Cookie技术读写客户端信息 96

4.5.4 实例:通过Cookie技术读写复杂数据 98

4.6 处理Session 100

4.6.1 什么是Session 100

4.6.2 认识操作Session的方法 101

4.6.3 创建Session对象 102

4.6.4 实例:通过Cookie跟踪Session 103

4.6.5 实例:通过重写URL跟踪Session 104

4.7 解决Web开发的乱码问题 106

4.7.1 认识Java语言编码原理 106

4.7.2 实例:解决输出乱码问题 108

4.7.3 实例:解决服务端程序读取中文请求消息的乱码问题 110

4.7.4 实例:用AJAX技术发送和接收中文信息 112

4.7.5 实例:实现请求消息头和响应消息头中转输中文 115

4.8 小结 116

4.9 实战练习 117

第5章 JSP技术(教学视频:62分钟) 119

5.1 通过MyEclipse工具编写第一个JSP程序 119

5.1.1 实例:编写显示服务器当前时间的JSP程序 119

5.1.2 调试JSP程序 122

5.1.3 改变JSP的访问路径和扩展名 123

5.1.4 手动发布JSP程序 124

5.2 了解JSP的运行原理 124

5.2.1 了解Tomcat处理JSP页过程 124

5.2.2 分析由JSP生成的Servlet代码 127

5.3 学习JSP基本语法 130

5.3.1 学习JSP表达式 131

5.3.2 实现在JSP中嵌入Java代码 131

5.3.3 学习JSP声明 133

5.3.4 学习JSP表达式语言(EL) 135

5.3.5 实例:利用EL函数替换HTML中的特殊字符 137

5.3.6 学习JSP页面中的注释 140

5.4 学习JSP指令 140

5.4.1 了解JSP指令 140

5.4.2 JSP指令page 141

5.4.3 JSP指令include 147

5.5 学习JSP内置对象 149

5.5.1 内置对象out 149

5.5.2 内置对象pageContext 151

5.5.3 其他内置对象 152

5.6 学习JSP标签 154

5.6.1 包含标签<jsp:include> 155

5.6.2 转发标签<jsp:forward> 157

5.6.3 传参标签<jsp:param> 157

5.6.4 创建Bean标签<jsp:useBean> 158

5.6.5 设置属性值标签<jsp:setProperty> 160

5.6.6 获取属性值标签<jsp:getProperty> 162

5.7 学习JSP的标准标签库(JSTL) 163

5.7.1 了解JSTL 163

5.7.2 JSTL中的条件标签 165

5.7.3 JSTL中的循环标签 167

5.8 小结 170

5.9 实战练习 170

第6章 用Servlet和JSP实现注册登录系统(教学视频:28分钟) 172

6.1 系统概述 172

6.1.1 系统功能简介 172

6.1.2 系统总体结构 173

6.2 设计数据库 173

6.3 实现系统的基础类 174

6.3.1 实现访问数据库的DBServlet类 174

6.3.2 实现MD5加密 176

6.3.3 实现图形验证码 177

6.4 实现注册系统 179

6.4.1 实现注册Servlet类 179

6.4.2 实现注册系统的主页面 181

6.4.3 实现结果JSP页面 184

6.5 实现登录系统 185

6.5.1 实现登录Servlet 185

6.5.2 实现登录系统主页面 187

6.6 小结 188

6.7 实战练习 188

第2篇 Struts 2篇 192

第7章 编写Struts 2第一个程序(教学视频:28分钟) 192

7.1 Struts 2的MVC模式 192

7.2 Struts 2的体系结构 193

7.2.1 工作流程 193

7.2.2 配置文件 193

7.2.3 控制器 195

7.3 Struts 2实例:图书查询系统 196

7.3.1 下载和安装Struts 2 196

7.3.2 编写数据处理类 197

7.3.3 编写和配置Action类 198

7.3.4 编写显示查询结果的JSP页面 200

7.3.5 编写输入查询信息的JSP页面 202

7.4 小结 203

7.5 实战练习 203

第8章 Struts 2进阶(教学视频:72分钟) 205

8.1 认识Struts 2的基本配置 205

8.1.1 配置web.xml 205

8.1.2 配置struts.xml 207

8.1.3 配置struts.properties 210

8.1.4 学习Struts 2的DTD 213

8.2 深入认识Struts 2的配置元素 215

8.2.1 配置Bean 216

8.2.2 配置常量(constant) 217

8.2.3 配置包含(include) 219

8.2.4 配置包(package) 219

8.2.5 配置命名空间 220

8.2.6 配置拦截器 222

8.3 掌握Struts 2注释(Annotation) 223

8.3.1 设置当前包的父包——ParentPackage注释 223

8.3.2 指定当前包的命名空间——Namespace注释 224

8.3.3 指定当前Action结果——Results与Result注释 224

8.3.4 实例:通过注释配置Action 225

8.4 掌握Struts 2的Action 228

8.4.1 了解Action类的getter和setter方法 228

8.4.2 实现Action接口 229

8.4.3 继承ActionSupport类 231

8.4.4 实例:用ActionContext访问Servlet API 232

8.4.5 实例:通过aware拦截器访问Servlet API 237

8.4.6 实例:利用动态方法处理多个提交请求 239

8.4.7 实例:利用method属性处理多个提交请求 241

8.4.8 使用通配符 242

8.4.9 设置默认的Action 245

8.5 配置跳转结果 246

8.5.1 了解Struts 2的配置结果 246

8.5.2 Struts 2支持的处理结果类型 247

8.5.3 配置带有通配符的结果 249

8.5.4 通过请求参数指定结果 250

8.6 掌握模型驱动 252

8.6.1 了解模型驱动——ModelDriven 252

8.6.2 实例:使用模型驱动改进登录程序 254

8.7 处理Struts 2中的异常 256

8.7.1 了解Struts 2处理异常的原理 257

8.7.2 实例:登录系统的异常处理 258

8.8 小结 261

8.9 实战练习 261

第9章 Struts 2的拦截器(教学视频:32分钟) 262

9.1 理解拦截器 262

9.1.1 掌握拦截器的实现原理 262

9.1.2 实例:模拟Struts 2实现一个拦截器系统 265

9.2 配置Struts 2拦截器 270

9.2.1 配置拦截器 270

9.2.2 使用拦截器 272

9.2.3 设置默认拦截器 273

9.3 实例:自定义拦截器 275

9.3.1 编写拦截器类 276

9.3.2 配置自定义拦截器 277

9.4 理解拦截器的高级技术 279

9.4.1 过滤指定的方法 279

9.4.2 拦截器的执行顺序 282

9.4.3 应用结果监听器 284

9.5 理解Struts 2内建的拦截器 287

9.5.1 认识内建拦截器 287

9.5.2 掌握内建拦截器的配置 288

9.6 实例:编写权限验证拦截器 291

9.6.1 编写权限验证拦截器类 291

9.6.2 配置权限控制拦截器 292

9.7 小结 294

9.8 实战练习 294

第10章 Struts 2的类型转换(教学视频:48分钟) 295

10.1 为什么要进行类型转换 295

10.1.1 了解客户端和服务端之间的数据处理过程 295

10.1.2 了解传统的类型转换 296

10.2 使用Struts 2类型转换器 299

10.2.1 了解Struts 2内建的类型转换器 300

10.2.2 实例:实现基于OGNL的类型转换器 303

10.2.3 配置全局类型转换器 307

10.2.4 实例:实现基于Struts 2的类型转换器 309

10.2.5 实例:实现数组类型转换器 311

10.2.6 实例:实现集合类型转换器 314

10.3 实例:使用OGNL表达式进行类型转换 316

10.4 Struts 2对Collection和Map的支持 319

10.4.1 指定集合元素的类型 319

10.4.2 掌握Set和索引属性 321

10.5 掌握类型转换的错误处理 322

10.6 小结 323

10.7 实战练习 324

第11章 Struts 2的输入校验(教学视频:39分钟) 326

11.1 了解传统的数据校验方法 326

11.1.1 用JavaScript进行客户端校验 326

11.1.2 手工进行服务端校验 331

11.2 了解Struts 2所支持的数据校验 334

11.2.1 了解使用validate方法校验数据的原理 334

11.2.2 实例:使用validate方法进行输入校验 336

11.2.3 实例:使用validateXxx方法进行输入校验 340

11.2.4 掌握Struts 2的输入校验流程 342

11.3 使用Validation框架进行输入校验 344

11.3.1 实例:服务端校验 344

11.3.2 使用字段校验器和非字段校验器 346

11.3.3 实现国际化错误提示信息 348

11.3.4 实例:客户端校验 350

11.3.5 了解校验文件的命名规则 354

11.3.6 了解短路校验器 356

11.4 Validation框架的内建校验器 358

11.4.1 使用注册和引用校验器 358

11.4.2 使用转换(conversion)校验器 359

11.4.3 使用日期(date)校验器 360

11.4.4 使用双精度浮点数(double)校验器 361

11.4.5 使用邮件地址(email)校验器 362

11.4.6 使用表达式(expression)校验器 363

11.4.7 使用字段表达式(fieldexpression)校验器 363

11.4.8 使用整数(int)校验器 364

11.4.9 使用正则表达式(regex)校验器 365

11.4.10 使用必填(required)校验器 366

11.4.11 使用必填字符串(requiredstring)校验器 366

11.4.12 使用字符串长度(stringlength)校验器 367

11.4.13 使用网址(URL)校验器 368

11.4.14 使用visitor校验器 368

11.5 小结 372

11.6 实战练习 372

第12章 文件的上传和下载(教学视频:44分钟) 374

12.1 了解文件上传原理 374

12.1.1 掌握表单数据的编码方式 374

12.1.2 掌握applicaiton/x-www.form-urlencoded编码方式 375

12.1.3 掌握multipart/form-data编码方式 378

12.2 使用Commons-FileUpload上传文件 380

12.2.1 下载和安装Commons-FileUpload组件 381

12.2.2 实例:上传单个文件 381

12.2.3 实例:上传任意多个文件 384

12.3 实例:通过Struts 2实现文件上传 387

12.3.1 了解Struts 2对上传文件组件的支持 387

12.3.2 编写上传文件的JSP页 388

12.3.3 编写上传文件的Action类 388

12.3.4 配置上传文件的Action类 390

12.3.5 手工过滤上传文件的类型 391

12.3.6 用fileUpload拦截器过滤上传文件的类型 394

12.4 实例:通过Struts 2实现上传多个文件 395

12.4.1 实例:用数组上传固定数目的文件 395

12.4.2 实例:用List上传任意数目的文件 399

12.5 学习文件下载 400

12.5.1 解决下载文件的中文问题 401

12.5.2 通过stream结果下载文件 401

12.5.3 控制下载文件的授权 404

12.6 小结 405

12.7 实战练习 405

第13章 程序的国际化(教学视频:27分钟) 407

13.1 了解国际化基础 407

13.1.1 程序为什么需要国际化 407

13.1.2 学习编写Java国际化中的资源文件 408

13.1.3 了解Java支持的语言和国家 409

13.1.4 实现资源文件的中文支持 410

13.1.5 编写国际化程序 411

13.1.6 编写带占位符的国际化信息 413

13.1.7 实例:使用资源文件编写国际化程序 415

13.1.8 掌握Java国际化中的资源类 417

13.1.9 实例:使用资源类编写国际化程序 418

13.2 了解Struts 2的国际化基础 420

13.2.1 学习Struts 2中的全局资源文件 420

13.2.2 实现在Struts 2中访问国际化信息 420

13.2.3 实现在Struts 2中输出带占位符的国际化信息 423

13.3 学习资源文件的作用范围和加载顺序 426

13.3.1 掌握包范围资源文件 426

13.3.2 掌握接口范围资源文件 428

13.3.3 掌握Action基类范围资源文件 429

13.3.4 掌握Action范围资源文件 431

13.3.5 掌握临时资源文件 432

13.3.6 掌握加载资源文件的顺序 433

13.4 实例:编写支持多国语言的Web应用程序 434

13.4.1 通过i18n拦截器实现国际化 435

13.4.2 为register.jsp页面增加语言选择列表 436

13.4.3 将register.jsp页面映射成Action 438

13.5 小结 439

13.6 实战练习 439

第14章 Struts 2的标签库(教学视频:67分钟) 441

14.1 认识Struts 2标签基础 441

14.1.1 了解Struts 2标签的分类 441

14.1.2 使用Struts 2标签 442

14.1.3 掌握Struts 2中的OGNL表达式 444

14.1.4 通过OGNL表达式访问内置对象 447

14.1.5 通过OGNL表达式操作集合 448

14.1.6 掌握Lamdba(λ)表达式 450

14.2 控制标签 451

14.2.1 条件逻辑控制标签if/elseif/else 451

14.2.2 数组、集合迭代标签iterator 454

14.2.3 将集合以追加方式合并为新集合的标签append 458

14.2.4 实现字符串分割成多个子串的标签generator 460

14.2.5 实现将集合以交替方式合并为新集合的标签merge 463

14.2.6 获得集合子集标签的subset 464

14.2.7 对集合进行排序的标签sort 466

14.3 数据标签 468

14.3.1 在JSP页面中直接访问Action的标签action 468

14.3.2 创建JavaBean的对象实例标签bean 470

14.3.3 格式化日期/时间的标签date 472

14.3.4 显示调试信息的标签debug 474

14.3.5 包含Web资源的标签include 475

14.3.6 为其他的标签提供参数的标签param 476

14.3.7 输出指定值的标签property 476

14.3.8 将指定值放到ValueStack栈顶的标签push 477

14.3.9 将某个值保存在指定范围的标签set 478

14.3.10 生成URL地址的标签url 480

14.4 学习表单标签 482

14.4.1 了解表单标签的通用属性 482

14.4.2 掌握表单标签的name和value属性 483

14.4.3 与表单相关的标签:form、submit和reset标签 485

14.4.4 生成多个复选框的标签checkboxlist 485

14.4.5 实现组合单行文本框和下拉列表框的标签combobox 488

14.4.6 实现组合文本框和日期、时间选择框的标签datetimespicker 490

14.4.7 生成级联列表框的标签doubleselect 493

14.4.8 添加CSS和JavaScript的标签head 495

14.4.9 生成可交互的两个列表框的标签optiontransferselect 495

14.4.10 生成列表框的标签select 497

14.4.11 生成下拉列表框选项组的标签optgroup 498

14.4.12 生成多个单选框的标签radio 500

14.4.13 防止多次提交表单的标签token 501

14.4.14 生成高级列表框列表的标签updownselect 501

14.4.15 其他常见的表单标签 503

14.5 学习非表单标签 503

14.5.1 显示字段错误信息的标签fielderror 503

14.5.2 显示动作错误和动作消息的标签actionerror和actionmessage 504

14.5.3 调用模板的标签component 505

14.6 小结 507

14.7 实战练习 507

第15章 Struts 2对AJAX的支持(教学视频:56分钟) 508

15.1 了解Struts 2的AJAX主题 508

15.2 基于AJAX的输入校验 510

15.2.1 下载和安装DWR框架 510

15.2.2 编写具有AJAX校验功能的注册页面 511

15.2.3 编写Action类 512

15.2.4 设置校验规则 513

15.3 在表单中使用AJAX 515

15.3.1 实现可异步提交的表单 515

15.3.2 实现Action类 515

15.3.3 实现结果处理页面 516

15.3.4 执行JavaScript代码 517

15.4 发布-订阅(pub-sub)事件模型 519

15.4.1 了解pub-sub事件模型的原理 519

15.4.2 实现pub-sub事件模型 520

15.4.3 阻止请求服务端资源 523

15.5 使用Struts 2中的AJAX标签 524

15.5.1 掌握div标签的基本应用 524

15.5.2 通过div标签执行JavaScript 527

15.5.3 手动控制div标签的更新 529

15.5.4 发送异步请求的标签submit标签 532

15.5.5 异步提交请求的链接a标签 534

15.5.6 自运完成功能的文本框autocompleter标签 537

15.5.7 生成Tab页的标签tabbedPanel标签 543

15.5.8 实现树节点和树的组件:treenode和tree标签 547

15.6 使用JSON插件实现AJAX 549

15.6.1 下载和安装JSON插件 549

15.6.2 下载和安装prototype.js 549

15.6.3 实现Action类 550

15.6.4 在JSP页面中通过Prototype请求Action 551

15.7 小结 553

15.8 实战练习 553

第16章 用Struts 2实现注册登录系统(教学视频:26分钟) 555

16.1 系统总体结构 555

16.2 实现DAO层 555

16.2.1 实现DAOSupport类 556

16.2.2 实现UserDAO接口 557

16.2.3 实现UserDAOImpI类 557

16.3 实现Action类 559

16.3.1 实现模型类(User) 559

16.3.2 实现LoginAction类 560

16.3.3 实现RegisterAction类 562

16.4 实现输入校验 563

16.4.1 校验登录页面 563

16.4.2 校验注册页面 564

16.5 实现表现层页面 565

16.5.1 实现登录页面(login.jsp) 565

16.5.2 实现注册页面(register.jsp) 567

16.5.3 实现主页面(main.jsp) 569

16.6 实现其他的功能 569

16.6.1 使用Action类生成验证码图像 569

16.6.2 使用拦截器验证页面访问权限 572

16.7 小结 573

16.8 实战练习 574

第3篇 Hibernate篇 578

第17章 Hibernate的Helloworld程序(教学视频:33分钟) 578

17.1 关于Hibernate概述 578

17.1.1 为什么要使用ORM 578

17.1.2 Hibernate和EJB的关系 579

17.2 在应用程序中使用Hibernate 4 579

17.2.1 MyEclipse对Hibernate 4的支持 580

17.2.2 下载和安装新版本的Hibernate 4 582

17.3 实现第1个Hibernate程序 583

17.3.1 开发Hibernate程序的基本步骤 583

17.3.2 建立数据表 584

17.3.3 建立Hibernate配置文件 584

17.3.4 建立会话工厂(SessionFactory)类 585

17.3.5 建立实体Bean和Struts 2的模型类 588

17.3.6 建立映射文件 588

17.3.7 建立添加记录的Action类 589

17.3.8 建立录入信息的JSP页面 591

17.4 小结 593

17.5 实战练习 593

第18章 实现Hibernate基本配置(教学视频:32分钟) 595

18.1 用传统的方法配置Hibernate 595

18.1.1 用XML文件配置Hibernate 595

18.1.2 用属性文件配置Hibernate 598

18.1.3 用编程的方式配置Hibernate 598

18.1.4 学习Hibernate框架的配置属性 599

18.1.5 掌握SQL方言(Dialect) 603

18.1.6 使用JNDI数据源 604

18.1.7 掌握配置映射文件 605

18.2 使用注释(Annotations)配置Hibernate 606

18.2.1 了解Hibernate注释 606

18.2.2 安装Hibernate注释 606

18.2.3 使用@Entity注释实体Bean 606

18.2.4 使用@Table注释实体Bean 607

18.2.5 使用@Id注释主键 607

18.2.6 使用@GenericGenerator注释产生主键值 609

18.2.7 使用@Basic和@Transient注释 609

18.2.8 更高级的Hibernate注释 610

18.3 使用注释重新实现添加信息程序 610

18.3.1 使用注释配置实体Bean 610

18.3.2 在Hibernate配置文件中指定实体Bean的位置 611

18.3.3 使用AnnotationConfiguration类处理annotation.cfg.xml文件 612

18.3.4 通过AnnotationSessionFactory类获得Session对象 613

18.4 小结 614

18.5 实战练习 614

第19章 Hibernate的会话与O/R映射(教学视频:61分钟) 616

19.1 会话(Session)的基本应用 616

19.1.1 保存持久化对象 616

19.1.2 判断持久化对象之间的关系 617

19.1.3 装载持久化对象 618

19.1.4 刷新持久化对象 620

19.1.5 更新持久化对象 621

19.1.6 删除持久化对象 622

19.2 建立O/R映射 622

19.2.1 映射主键 623

19.2.2 映射复合主键 623

19.2.3 实例:主键和复合主键的查询和更新 624

19.2.4 映射普通属性 630

19.2.5 建立组件(Component)映射 630

19.2.6 实例:组件映射的应用 631

19.2.7 基于注释的组件映射 635

19.2.8 建立多对一(many-to-one)单向关联关系 636

19.2.9 实例:多对一关系的演示 637

19.2.10 基于注释的多对一关系映射 641

19.2.11 建立一对多(one-to-many)的双向关联关系 641

19.2.12 实例:一对多双向关联的演示 642

19.2.13 基于注释的一对多映射 645

19.2.14 建立基于外键的一对一(one-to-one)的关系映射 646

19.2.15 实例:基于外键的一对一关系演示 646

19.2.16 建立基于主键的一对一的关系映射 650

19.2.17 实例:基于主键的一对一关系映射 650

19.3 小结 654

19.4 实战练习 654

第20章 Hibernate的查询与更新技术(教学视频:43分钟) 657

20.1 学习标准(Criteria)查询API 657

20.1.1 实例:一个简单的例子 657

20.1.2 设置查询的约束条件 658

20.1.3 对查询结果进行分页 661

20.1.4 实例:实现Web分页功能 662

20.1.5 实现只获得一个持久化对象 665

20.1.6 对查询结果进行排序 666

20.1.7 实现多个Criteria之间的关联 666

20.1.8 实现聚合和分组查询 667

20.1.9 使用QBE(Query By Example) 669

20.2 掌握HQL和SQL技术 671

20.2.1 实例:使用HQL的第一个例子 671

20.2.2 使用From子句简化实体Bean类名 672

20.2.3 使用Select子句选择返回属性 673

20.2.4 使用Where子句指定条件 674

20.2.5 使用命名参数 675

20.2.6 使用Query进行分页 677

20.2.7 实例:使用HQL实现Web分页功能 677

20.2.8 使用HQL进行排序和分组 678

20.2.9 实现关联查询 679

20.2.10 实现聚合函数查询 681

20.2.11 使用Update和Delete语句更新持久化对象 682

20.2.12 使用Insert语句插入记录 683

20.2.13 掌握命名查询 684

20.2.14 使用SQL查询 685

20.3 小结 687

20.4 实战练习 687

第21章 Hibernate的高级技术(教学视频:40分钟) 689

21.1 什么是事务 689

21.1.1 事务的特性 689

21.1.2 认识事务的隔离等级 690

21.1.3 Hibernate所支持的事务管理 691

21.1.4 基于JDBC的事务管理 691

21.1.5 基于JTA的事务管理 692

21.2 学习锁(Locking) 692

21.2.1 认识悲观锁(Pessimistic Locking) 693

21.2.2 认识乐观锁(Optimistic Locking) 694

21.3 应用查询缓存(Query Cache) 696

21.4 学习拦截器和事件 697

21.4.1 了解拦截器(Interceptors) 697

21.4.2 实例:编写一个Hibernate拦截器 698

21.4.3 了解事件(Events) 702

21.4.4 实例:编写和注册事件类 703

21.5 学习过滤器 705

21.6 小结 706

21.7 实战练习 707

第4篇 Sping篇 710

第22章 Spring的第一个Helloworld程序(教学视频:16分钟) 710

22.1 Spring简介 710

22.1.1 了解Spring的主要特性 710

22.1.2 学习Spring的核心技术 711

22.2 在应用程序中使用Spring 712

22.2.1 MyEclipse 10.6对Spring的支持 712

22.2.2 载和安装Spring 713

22.3 实例:开发一个Helloworld程序 714

22.3.1 编写HelloService接口 714

22.3.2 编写HelloServiceImpl类 715

22.3.3 装配HelloServiceImpl类 715

22.3.4 通过装配Bean的方式获得HelloService对象 716

22.4 小结 716

22.5 实战练习 717

第23章 反向控制(Ioc)与装配JavaBean(教学视频:30分钟) 718

23.1 为什么要使用反向控制(Ioc) 718

23.1.1 什么是依赖注入 718

23.1.2 传统解决方案的缺陷 719

23.1.3 通过Ioc降低耦合度 720

23.2 手动装配JavaBean 721

23.2.1 掌握装配Bean的方法 721

23.2.2 掌握与Bean相关的接口 722

23.2.3 了解<bean>标签的常用属性 723

23.2.4 装配普通属性 724

23.2.5 装配集合属性 727

23.2.6 设置属性值为null 731

23.2.7 装配构造方法 731

23.3 自动装配JavaBean 734

23.4 分散配置 736

23.5 定制属性编辑器 738

23.6 小结 742

23.7 实战练习 742

第24章 Spring中的数据库技术(教学视频:25分钟) 744

24.1 获得DataSource 744

24.1.1 通过JNDI获得DataSource 744

24.1.2 从第三方的连接池获得DataSource 745

24.1.3 使用DriverManagerDataSource 746

24.2 在Spring中使用JDBC 746

24.2.1 装配JdbcTemplate类 746

24.2.2 向数据库中写数据 747

24.2.3 从数据库中读数据 749

24.2.4 调用存储过程 752

24.3 实现自增键 753

24.4 Spring的异常处理 754

24.5 在Spring中使用Hibernate 755

24.5.1 集成Spring和Hibernate 755

24.5.2 使用HibernateTemplate 757

24.6 小结 758

24.7 实战练习 758

第25章 Spring的其他高级技术(教学视频:39分钟) 760

25.1 Spring AOP 760

25.1.1 了解AOP基本概念 760

25.1.2 了解AOP术语 761

25.1.3 掌握4种通知(Advice)的作用 762

25.1.4 通过Advisor指定切入点 768

25.1.5 使用控制流切入点 771

25.2 学习Spring的事务管理 773

25.2.1 实例:使用程序控制事务 773

25.2.2 掌握声明式事务 775

25.2.3 了解事务属性的种类 778

25.2.4 设置事务属性 779

25.2.5 设置特定方法的事务属性 780

25.3 实例:建立和访问RMI服务 782

25.4 实例:发送E-mail 784

25.5 调度任务 786

25.6 小结 788

25.7 实战练习 788

第5篇 综合实例篇 792

第26章 Struts 2与Hibernate、Spring的整合(教学视频:12分钟) 792

26.1 整合Struts 2和Hibernate框架 792

26.1.1 整合的思路 792

26.1.2 整合后的系统层次 793

26.1.3 实现数据访问层 793

26.1.4 实现业务逻辑层 795

26.1.5 实现Struts 2和Hibernate共享实体Bean 797

26.2 整合Spring框架 798

26.2.1 装配数据访问层 799

26.2.2 装配业务逻辑层 800

26.2.3 使用Struts 2的Spring插件 801

26.3 小结 802

26.4 实战练习 802

第27章 网络硬盘(教学视频:57分钟) 804

27.1 了解系统功能 804

27.1.1 系统功能简介 804

27.1.2 系统架构设计 806

27.2 实现数据库设计 806

27.3 实现持久对象层 808

27.3.1 实现用户实体Bean 809

27.3.2 实现目录实体Bean 810

27.3.3 实现文件实体Bean 811

27.3.4 映射MySQL存储过程 812

27.3.5 配置hibernate.cfg.xml 813

27.4 实现数据访问层 814

27.4.1 实现DAOSupport类 814

27.4.2 实现UserDAO接口和UserDAOImpl类 814

27.4.3 实现DirectoryDAO接口和DirectoryDAOImpl类 816

27.4.4 实现FileDAO接口和FileDAOImpl类 817

27.5 实现业务逻辑层 819

27.5.1 实现UserService接口和UserServiceImpl类 819

27.5.2 实现DirectoryService接口和DirectoryServiceImpl类 820

27.5.3 实现FileService接口和FileServiceImpl类 822

27.5.4 实现服务管理类 825

27.5.5 配置applicationContext.xml 826

27.6 实现Web表现层 828

27.6.1 实现基础动作类(BaseAction) 829

27.6.2 实现用户登录页面和处理登录的Action类 830

27.6.3 实现注册登录页面和处理注册的Action类 832

27.6.4 网络硬盘主页 833

27.6.5 建立目录 834

27.6.6 文件上传 836

27.6.7 文件和目录下载 836

27.6.8 使用拦截器控制页面访问权限 841

27.6.9 其他的功能 842

27.7 小结 842

第28章 论坛系统(教学视频:50分钟) 843

28.1 系统功能设计 843

28.2 实现数据库设计 844

28.3 实现持久对象层 846

28.3.1 实现主题实体Bean 846

28.3.2 实现回复实体Bean 848

28.3.3 配置hibernate.cfg.xml 849

28.4 实现数据访问层 850

28.4.1 实现TopicDAO接口和TopicDAOImpl类 850

28.4.2 实现ReviewDAO接口和ReviewDAOImpl类 851

28.5 实现业务逻辑层 852

28.5.1 实现TopicService接口和TopicServiceImpl类 852

28.5.2 实现ReviewService接口和ReviewServiceImpl类 855

28.5.3 实现服务管理类 857

28.5.4 配置applicationContext.xml 857

28.6 整合FCKEditor内容编辑组件 858

28.6.1 安装FCKEditor 858

28.6.2 配置FCKEditor 858

28.6.3 修改FCKEditor自带的Servlet 862

28.6.4 生成FCKEditor的客户端脚本 862

28.7 实现Web表现层 863

28.7.1 浏览主题列表 863

28.7.2 发布新主题 866

28.7.3 浏览某个主题和它的回复内容 867

28.7.4 回复当前主题 868

28.8 小结 869