Struts2+Hibernate+Spring整合开发技术详解

Struts2+Hibernate+Spring整合开发技术详解"

作者:蒲子明、许勇、王黎
ISBN:9787302211037
定价:¥69.50
字数:千字
页数:
出版时间:2010.10.01
开本:
版次:1-7
装帧:
出版社:清华大学出版社
简介

    本书通过理论与实践相结合的方式来讲述Struts 2+Hibernate+Spring整合开发知识。本书共分4篇19章,第1篇为1~7章,内容包括Struts 2运行机制,常用配置,拦截器,Struts 2标签优势及分类,Struts 2国际化、异常处理、OGNL和文件上传与下载。第2篇为8~11章,内容包括Hibernate框架、基础配置和Hibernate核心接口,基本映射,Hibernate一级缓存和二缓存及性能优化。第3篇为12~16章,内容包括Spring体系结构,Bean容器,Spring AOP,Spring MVC框架,DispatcherServlet配置、处理器映射与拦截器、视图解析器和控制器,Struts 2与Spring的整合原理、方式和流程。第4篇通过3个综合应用实例介绍了Struts 2+ Hibernate + Spring整合开发知识。

    本书适合的读者对象包括Java Web开发和J2EE开发人员,具备一定基础的JSP和Servlet开发人员,正在自学J2EE知识的读者,本书还可以作为在校师生的教学参考资料。

前言

在众多的软件开发语言中,Java语言以其简单易学、适用范围广泛等诸多优点,成为近几年最为流行的一种编程语言。尤其是Web应用的普及化,更推动了Java语言的发展。根据调查结果显示,全国各大IT企业,招聘职位最多的就是Java开发工程师。对于那些想要加入IT队伍的人来说,Java自然成了首选,越来越多的人选择了学习Java语言。

Java 2 Enterprise Edition(J2EE)技术自从被推出以来就得到了广泛认可和应用,随着多年的技术演变和发展,J2EE技术平台已经日趋成熟,成为当今电子商务的最佳解决方案。相对于微软推出的.NET平台,J2EE继承了Java平台无关性的优点,成为金融、保险、电信等大型应用系统的首选平台方案。

而在J2EE技术中,使用Struts 2+Hibernate+Spring进行整合开发是最为流行和最受欢迎的框架搭配,正被越来越多的开发者使用,本书就如何将这些框架整合起来应用到J2EE开发中去从理论到实践给出了实际的解决方案,引导读者快速进入最流行的J2EE开发框架应用实践中去。

1.本书内容

本书共分4篇19章,通过理论与实践相结合的方式来讲述Struts 2 + Hibernate + Spring整合开发。

第1篇包括第1~7章。第1章简单介绍MVC设计,概述Struts 2,然后通过一个简单的实例介绍Struts 2的使用及运行机制;最后讲述Struts 2常用配置。第2章讲述Struts 2拦截器,包括拦截器原理、配置和自定义拦截器。第3章讲述Struts 2的Action类的实现,讲述ActionContext和Servlet API的访问、Action配置、动态方法调用。

第4章首先介绍Struts 2标签优势及分类,然后以实例形式讲解Struts 2的常用标签。第5章介绍Struts 2输入校验必要性、种类以及与类型的关系,然后以实例形式讲述了两种方式的输入校验:重写validate()方法和使用Struts 2内置校验器。第6章讲述Struts 2国际化、异常处理、OGNL和文件上传与下载。第7章以用户注册系统为实例,讲述Struts 2应用的使用方法。

第2篇包括第8~11章。第8章通过对象持久化与持久层引出ORM,概述了Hibernate框架,最后讲述了Hibernate配置、日志配置和Hibernate核心接口。第9章讲述Hibernate基本映射,介绍集合映射和实体关联关系映射,最后讲述了Hibernate常用检索方式:HQL查询和QBC查询。第10章介绍事务,概念、并发控制和Hibernate悲

观锁与乐观锁,以及Hibernate一级缓存和二级缓存,最后讲解如何对Hibernate进行性能优化。第11章通过BBS论坛实例来讲述Struts 2与Hibernate的整合、应用。

第3篇包括第12~16章。第12章主要讲述Spring的下载和安装、体系结构、单态与工厂模式的实现、控制反转和与其他产品的比较。第13章介绍Bean容器、生命周期、基本Bean装配、自动装配和Spring特殊Bean的使用。第14章首先概述了Spring AOP,然后以实例讲解5种通知类型,最后讲述了切点,定义与使用,以及ProxyFactoryBean和自动代理。

第15章首先概述了Spring MVC,通过入门实例来讲解其机制,介绍了DispatcherServlet配置、映射处理器与拦截器、视图解析器和控制器的使用,最后讲述了中文乱码的处理、信息国际化、文件上传和Tiles布局。第16章通过相册系统来讲述Struts 2与Spring的整合原理、方式和流程,以及如何应用Struts 2与Spring。

第4篇包括第17~19章。第17章通过通讯录实例来讲解Spring与Hibernate的整合与应用方法。第18章通过列车查询系统实例讲述Struts 2、Spring与Hibernate的整合过程、原理及应用方法。第19章通过网上书店项目实例讲述Struts 2、Spring与Hibernate的整合过程、原理及应用方法。

2.本书特色

本书中采用大量的实例进行讲解,力求通过实例使读者更形象地理解面向对象的思想,快速掌握Struts 2、Spring和Hibernate理论及实际应用。本书难度适中,内容由浅入深,实用性强,覆盖面广,条理清晰。

? 示例典型,应用广泛  作者精心挑选了大量的示例程序,它们都是根据作者在实际开发中的经验总结而来的,涵盖了在实际开发中可能出现的各种问题,而且有些程序能够直接在项目中使用,避免读者进行二次开发。

? 基于理论,注重实践  在讲述过程中,不仅仅只介绍理论知识,而且在合适位置安排综合应用实例,或者小型应用程序,将理论应用到实践当中,来帮助读者提高实际应用能力,巩固Struts 2、Spring和Hibernate开发基础和知识。

? 语言简洁,版式活泼  本书力求以最简洁、活泼的语言和生活中的经典例子来阐述各种知识,达到易于阅读、理解和掌握的目的。在阐述过程中穿插了各种提示、注意、技巧等体例,同时能突出重点,层次分明。

? 随书配备光盘  本书为实例配备了视频教学文件,读者可以通过视频文件更加直观地学习Struts 2、Spring和Hibernate的操作知识。

3.读者对象

本书具有知识全面、实例精彩、指导性强的特点,力求以全面的知识性及丰富的实例来指导读者透彻地学习Struts 2、Spring和Hibernate各方面的知识。本书可以作为Struts 2、Spring和Hibernate开发的入门书籍,也可以帮助中级读者提高技能,对高级读者也有一定的启发意义。

本书适合以下人员阅读学习。

? Java Web开发和J2EE开发人员。

? 有一定的JSP和Servlet基础的读者。

? 正在接受J2EE培训的读者。

? 在校师生、参加工作的读者以及自学编程的读者。

4.本书案例开发环境

? 操作系统  Windows XP。

? Web服务器  Tomcat 6.x。

? 数据库服务器  MySQL 5.0。

? 开发工具  MyEclipse 7.0。

除了封面署名人员之外,参与本书编写的人员还有于永军、张秋香、李乃文、张仕禹、夏小军、赵振江、李振山、李文才、吴越胜、李海庆、何永国、李海峰、陶丽、吴俊海、安征、张巍屹、崔群法、王咏梅、康显丽、辛爱军、牛小平、贾栓稳、王立新、苏静、赵元庆、郭磊、徐铭、李大庆、王蕾、张勇、郝安林、郭新志、牛丽平、唐守国等。在编写过程中难免会有漏洞,欢迎读者批评指正,以进一步改进和提高本书的质量。

目录

第1篇  Struts 2篇

第1章  Struts 2入门 2

1.1  Struts 2发展历程 2

1.1.1  MVC概述 2

1.1.2  Struts 1概述 4

1.1.3  Struts 2概述及优势 6

1.2  配置Struts 2运行环境 7

1.3  Struts 2第一个例子 8

1.4  Struts 2各个部分的作用 11

1.5  配置Struts 2 14

1.5.1  配置web.xml 14

1.5.2  配置struts.properties 15

1.6  配置struts.xml 18

1.6.1  文件结构 18

1.6.2  Bean配置 19

1.6.3  常量配置 19

1.6.4  包配置 20

1.6.5  命名空间配置 21

1.6.6  包含配置 23

第2章  拦截器 25

2.1  拦截器简介 25

2.1.1  拦截器工作原理 25

2.1.2  拦截器意义 26

2.1.3  拦截器角色 28

2.2  拦截器配置 29

2.2.1  配置拦截器 29

2.2.2  使用拦截器 32

2.2.3  默认拦截器 34

2.3  自定义拦截器 35

2.3.1  实现拦截器类 35

2.3.2  使用自定义拦截器 37

2.3.3  文字过滤拦截器实例 40

2.4  深入拦截器 43

2.4.1  拦截器方法过滤 43

2.4.2  拦截器的拦截顺序 46

2.4.3  拦截结果监听器 47

 

2.4.4  覆盖拦截器中的参数 49

2.5  内建拦截器 50

2.5.1  内建拦截器简介 50

2.5.2  耗时拦截器实例 55

第3章  Action和类型转换 57

3.1  实现Action控制类 57

3.2  访问ActionContext 60

3.3  直接访问Servlet API 63

3.4  配置Action 65

3.5  动态方法调用 67

3.6  使用通配符 68

3.7  类型转换 68

3.7.1  使用Struts 2内建类型转换器 68

3.7.2  类型转换中的异常处理 72

第4章  Struts 2标签库 75

4.1  Struts 2标签库概述 75

4.1.1  使用标签的优势 75

4.1.2  Struts 2标签库分类 76

4.2  使用控制标签 77

4.2.1  if/elseif/else标签 77

4.2.2  iterator/append/merge/generator/

subset/sort标签 78

4.3  使用数据标签 84

4.3.1  action标签 84

4.3.2  bean标签 87

4.3.3  debug标签 88

4.3.4  include标签 88

4.3.5  param标签 89

4.3.6  property标签 90

4.3.7  set标签 91

4.3.8  url标签 92

4.3.9  date标签 93

4.4  使用主题模板 94

4.5  使用表单UI标签 96

4.5.1  表单标签的通用属性 97

4.5.2  简单表单标签 97

4.5.3  checkboxlist标签 98

4.5.4  radio标签 100

4.5.5  combobox标签 101

4.5.6  select标签 101

4.5.7  doubleselect标签 102

4.5.8  optgroup标签 103

4.5.9  datetimepicker标签 104

4.5.10  token标签 105

4.5.11  updownselect标签 107

4.5.12  optiontransferselect标签 108

4.6  使用非表单UI标签 109

4.6.1  actionerror标签和actionmessage

标签 110

4.6.2  component标签 111

4.6.3  tree标签和treenode标签 112

第5章  Struts 2输入校验 114

5.1  输入校验概述 114

5.1.1  进行输入校验的必要性 114

5.1.2  客户端校验与服务器端校验 115

5.1.3  类型转换与输入校验的关系 117

5.2  Struts 2手动完成输入校验 117

5.2.1  重写validate()方法 117

5.2.2  重写validateXxx()方法 119

5.2.3  Struts 2输入校验流程 122

5.3  使用Struts 2内置校验器 123

5.3.1  登录内置校验器实例 123

5.3.2  校验器配置风格 125

5.3.3  常用内置校验器 126

5.3.4  服务器端校验转换为客户端

校验 136

5.4  自定义校验器 137

第6章  Struts 2扩展与高级技巧 140

6.1  Struts国际化 140

6.1.1  Struts 2实现国际化的机制 140

6.1.2  加载国际化资源文件的方式 144

6.1.3  带占位符的国际化消息 145

6.1.4  实现自由选择语言环境 147

6.2  应用中的异常处理 149

6.2.1  Struts 2异常处理机制 149

6.2.2  除法运算异常实例 150

6.3  OGNL 152

6.4  文件上传与下载 155

6.4.1  文件上传 155

6.4.2  文件下载 158

第7章  用户注册系统 160

7.1  系统概述 160

7.1.1  需求分析 160

7.1.2  系统用例图 161

7.1.3  系统设计 163

7.2  数据库设计 164

7.3  通用模块实现 165

7.3.1  实现通用数据库连接 165

7.3.2  配置文件 166

7.3.3  国际化 169

7.4  用户模块实现 170

7.4.1  用户注册 170

7.4.2  用户登录 175

7.4.3  查看所有用户 177

7.4.4  修改个人信息 180

7.5  管理员模块实现 184

7.5.1  管理员登录 184

7.5.2  删除管理员 186 

第2篇  Hibernate篇

 

第8章  Hibernate简介 192

8.1  持久化概述 192

8.1.1  对象持久化 192

8.1.2  持久化层 193

8.2  ORM简介 195

8.2.1  ORM的概念 195

8.2.2  ORM面临的问题 197

8.2.3  ORM的优点 199

8.3  Hibernate框架 200

8.3.1  Hibernate的发展 200

8.3.2  Hibernate、EJB3和JPA 200

8.3.3  Hibernate的下载与安装 202

8.4  第一个Hibernate程序 203

8.4.1  创建数据库 204

8.4.2  创建项目 205

8.4.3  创建持久化类 205

8.4.4  Hibernate映射文件 207

8.4.5  Hibernate配置文件 208

8.4.6  Hibernate Session和

MemberDAO类 209

8.4.7  运行第一个Hibernate程序 211

8.5  Hibernate基础配置 213

8.5.1  两种格式配置文件 213

8.5.2  配置属性 214

8.5.3  日志配置 218

8.6  Session接口 219

8.6.1  构建SessionFactory 219

8.6.2  Session的创建与关闭 222

8.6.3  Session的使用方法 222

第9章  Hibernate映射与检索 227

9.1  映射文件配置 227

9.1.1  <hibernate-mapping> 228

9.1.2  <class>元素 229

9.1.3  <id>元素 231

9.1.4  <property>元素 232

9.2  集合映射 234

9.2.1  Java集合类 234

9.2.2  无序Set映射 237

9.2.3  有序Set映射 239

9.2.4  映射List 241

9.2.5  映射Bag 242

9.2.6  映射Map 243

9.3  实体对象关联关系映射 244

9.3.1  映射单向多对一关联 244

9.3.2  基于外键单向一对一关联 248

9.3.3  基于主键单向一对一关联 249

9.3.4  映射双向一对一关联 250

9.3.5  映射双向一对多关联 252

9.3.6  映射单向多对多关联 254

9.3.7  映射双向多对多关联 256

9.4  Hibernate检索方式 257

9.4.1  HQL基础 258

9.4.2  动态查询和动态实例查询 262

9.4.3  分页查询 263

9.4.4  HQL嵌套子查询 264

9.4.5  多表查询 265

9.4.6  QBC入门 270

9.4.7  举例查询 274

第10章  Hibernate事务、缓存与性能

优化 276

10.1  事务 276

10.1.1  事务的概念 277

10.1.2  ACID 278

10.1.3  在Hibernate中使用事务 279

10.2  并发控制 281

10.2.1  4个并发问题 282

10.2.2  事务隔离 284

10.2.3  在Hibernate中设置事务隔离

  级别 285

10.3  悲观锁和乐观锁 285

10.3.1  Hibernate锁定模式 286

10.3.2  悲观锁 286

10.3.3  乐观锁 287

10.4  Hibernate缓存 291

10.4.1  缓存的概念 291

10.4.2  Hibernate中的两级缓存

  结构 292

10.4.3  Hibernate中的第一级缓存 293

10.5  Hibernate中的第二级缓存 293

10.6  Hibernate查询缓存 297

10.7  Hibernate性能优化 299

10.7.1  优化系统设计 300

10.7.2  批量数据操作优化 300

10.8  Hibernate查询优化 302

第11章  BBS论坛开发 307

11.1  系统设计 307

11.1.1  需求分析 307

11.1.2  功能设计 308

11.2  数据库设计 309

11.3  系统实现 310

11.3.1  搭建Struts 2+Hibernate环境 310

11.3.2  建立业务实体对象 312

11.3.3  用户注册模块 314

11.3.4  论坛帖子模块 320

11.3.5  管理员模块 325

11.3.6  安全退出模块 329

 

第3篇  Spring 篇

 

第12章  Spring概述 332

12.1  使用Spring的原因 332

12.2  Spring的下载和安装 333

12.3  Spring快速入门 334

12.3.1  Spring体系简介 334

13.3.2  Spring 2.5新特性 336

12.3.3  单态模式回顾 337

12.3.4  工厂模式回顾 338

12.3.5  单态模式与工厂模式的Spring

  实现 340

12.4  理解IoC 342

12.4.1  IoC实施策略 342

12.4.2  依赖注入 344

12.4.3  设值注入 345

12.4.4  构造注入 348

12.5  Spring产品线横向比较 349

12.5.1  Spring与EJB产品比较 349

12.5.2  与Spring相似的框架 351

12.5.3  其他Web框架 352

12.5.4  其他持久框架 354

第13章  装配Bean 357

13.1  Bean容器 357

13.1.1  Bean工厂 357

13.1.2  使用应用程序环境 361

13.2  Bean的生命周期 364

13.2.1  BeanFactory中Bean的生命

  周期 364

13.2.2  ApplicationContext中Bean的

  生命周期 369

13.3  基本Bean装配 370

13.3.1  使用XML进行装配 371

13.3.2  添加Bean 372

13.3.3  Bean命名 373

13.3.4  使用Setter Injection 373

13.3.5  使用Constructor Injection 375

13.4  自动装配 376

13.4.1  自动装配类型 377

13.4.2  自动装配控制 379

13.4.3  默认自动装配 381

13.4.4  使用自动装配的前提 381

13.5  使用Spring特殊Bean 382

13.5.1  后处理Bean 382

13.5.2  后处理Bean工厂 386

13.5.3  配置信息分离 386

13.5.4  解析文本信息 388

13.5.5  事件处理 389

第14章  面向切面编程 392

14.1  AOP简介 392

14.1.1  AOP术语 392

14.1.2  Spring AOP的实现者 394

14.1.3  Spring AOP实现 395

14.2  创建advice 396

14.2.1  Before Advice 397

14.2.2  After Advice 400

14.2.3  Around Advice 401

14.2.4  Throws Advice 402

14.2.5  Introduction Advice 403

14.3  定义Pointcut 404

14.3.1  定义一个新Pointcut的方法 404

14.3.2  理解Advisor 405

14.3.3  使用Spring静态Pointcut 406

14.3.4  使用Spring动态Pointcut 410

14.4  创建Introduction 412

14.4.1  实现IntroductionInterceptor 412

14.4.2  创建IntroductionAdvisor 414

14.5  使用ProxyFactoryBean 415

14.6  自动代理 416

14.6.1  实现类 416

14.6.2  BeanNameAutoProxyCreator 417

14.6.3  DefaultAdvisorAutoProxyCreator 418

第15章  Spring Web框架 420

15.1  Spring MVC框架 420

15.1.1  Spring MVC概述 420

15.1.2  Spring Web入门实例 423

15.1.3  配置DispatcherServlet 428

15.1.4  处理器映射与拦截器 430

15.1.5  视图解析器 433

15.1.6  异常解析器 435

15.1.7  控制器简介 436

15.1.8  命令控制器 437

15.1.9  表单控制器与验证器 439

15.1.10  多动作控制器 444

15.1.11  向导控制器 447

15.1.12  参数映射控制器和文件名

映射控制器 452

15.2  中文乱码问题 453

15.3  国际化信息 454

15.4  文件上传 457

15.5  使用Tiles布局 459

15.5.1  定义模板 460

15.5.2  配置Tiles 461

第16章  相册系统 464

16.1  系统概述 464

16.1.1  需求分析 464

16.1.2  系统用例图 465

16.1.3  系统设计 466

16.1.4  数据库设计 466

16.2  系统配置 467

16.2.1  整合原理 468

16.2.2  整合方式 468

16.2.3  整合流程 471

16.2.4  applicationContext.xml 472

16.2.5  struts.xml 474

16.3  系统模块开发 475

16.3.1  用户注册 475

16.3.2  用户登录 479

16.3.3  创建相册 481

16.3.4  上传图片 484

16.3.5  查看相册 488

16.3.6  管理相册 491 

第4篇  综合实例篇

 

第17章  通讯录 496

17.1  系统概述 496

17.1.1  需求分析 496

17.1.2  系统用例图 497

17.1.3  系统设计 498

17.1.4  数据库设计 498

17.2  系统整合 499

17.2.1  整合流程 499

17.2.2  配置数据库连接 502

17.2.3  配置SessionFactory 502

17.2.4  在Spring中配置DAO 503

17.3  联系组模块 504

17.3.1  添加联系组 504

17.3.2  删除联系组 508

17.3.3  查看分组 512

17.4  联系人模块 515

17.4.1  添加联系人 515

17.4.2  修改联系人 516

17.4.3  全部联系人 518

17.4.4  查询联系人 522

第18章  列车查询系统 524

18.1  系统概述 524

18.1.1  需求分析 524

18.1.2  系统用例图 525

18.1.3  系统设计 526

18.2  数据库设计 527

18.3  框架整合 529

18.3.1  整合过程 529

18.3.2  管理员登录 535

18.3.3  整合原理 538

18.3.4  系统结构 540

18.3.5  系统文件描述 540

18.4  Hibernate持久层 541

18.4.1  连接数据库 541

18.4.2  设计持久化对象 543

18.4.3  创建持久化类 544

18.4.4  映射持久化类 546

18.5  实现DAO层 548

18.5.1  实现DAO组件 549

18.5.2  部署DAO组件 551

18.6  按车次查询列车模块 552

18.6.1  设计按车次查询列车页面 552

18.6.2  创建Action 553

18.6.3  配置Action 554

18.6.4  JSP页面输出 554

第19章  网上书店项目 558

19.1  系统设计 558

19.1.1  需求分析 558

19.1.2  功能设计 559

19.2  数据库设计 560

19.3  系统实现 563

19.3.1  搭建Struts 2 + Spring + Hibernate

  环境 563

19.3.2  建立业务实体对象 566

19.3.3  用户注册模块 568

19.3.4  图书显示模块 573

19.3.5  购物车模块 577

19.3.6  后台管理模块 585

 

作者简介

编辑推荐

作者寄语

电子资料

www.luweidong.cn

下一个