《轻量级JAVA EE企业应用实战 第3版》PDF下载

  • 购买积分:22 如何计算积分?
  • 作  者:李刚编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2012
  • ISBN:9787121160851
  • 页数:816 页
图书介绍:本书重点介绍如何整合Struts 2.2+Spring 3.0+Hibernate 3.6进行Java EE开发。第一部介绍Java EE开发的基础知识,以及如何搭建开发环境。第二部分详细讲解Struts 2.2、Spring 3.0和Hibernate 3.6三个框架的用法,介绍三个框架时,从Eclipse IDE的使用来上手,一步步带领读者深入三个框架的核心。这部分内容是笔者讲授“疯狂Java实训”的培训讲义,因此是本书的重点部分,既包含了笔者多年开发经历的领悟,也融入了丰富的授课经验。

第1章Java EE应用和开发环境 1

1.1 Java EE应用概述 2

1.1.1 Java EE应用的分层模型 2

1.1.2 Java EE应用的组件 3

1.1.3 Java EE应用的结构和优势 4

1.1.4常用的Java EE服务器 4

1.2轻量级Java EE应用相关技术 5

1.2.1 JSP、 Servlet 3.0和JavaBean及替代技术 5

1.2.2 Struts 2.2及替代技术 5

1.2.3 Hibemate 3.6及替代技术 6

1.2.4 Spring 3.0及替代技术 6

1.3 Tomcat的下载和安装 7

1.3.1安装Tomcat服务器 8

1.3.2配置Tomcat的服务端口 9

1.3.3进入控制台 10

1.3.4部署Web应用 12

1.3.5配置Tomcat的数据源 13

1.4 Eclipse的安装和使用 15

1.4.1 Eclipse的下载和安装 15

1.4.2在线安装Eclipse插件 15

1.4.3从本地压缩包安装插件 17

1.4.4手动安装Eclipse插件 17

1.4.5使用Eclipse开发Java EE应用 18

1.4.6导入Eclipse项目 21

1.4.7导入非Eclipse项目 22

1.5 Ant的安装和使用 23

1.5.1 Ant的下载和安装 23

1.5.2使用Ant工具 24

1.5.3定义生成文件 25

1.5.4 Ant的任务(task) 29

1.6使用CVS进行协作开发 31

1.6.1安装CVS服务器 32

1.6.2配置CVS资源库 34

1.6.3安装CVS客户端 35

1.6.4发布项目到服务器 35

1.6.5从服务器下载项目 37

1.6.6同步(Update)本地文件 38

1.6.7提交(Commit)修改 39

1.6.8添加文件和目录 39

1.6.9删除文件和目录 40

1.6.10查看文件的版本变革 41

1.6.11提取文件以前版本的内容 42

1.6.12从以前版本重新开始 42

1.6.13创建标签 43

1.6.14创建分支 43

1.6.15 沿着分支开发 44

1.6.16使用Eclipse作为CVS客户端 44

1.7本章小结 46

第2章JSP/Servlet及相关技术详解 47

2.1 Web应用和web.xml文件 48

2.1.1构建Web应用 48

2.1.2配置描述符web.xml 49

2.2 JSP的基本原理 50

2.3 JSP注释 54

2.4 JSP声明 54

2.5输出 JSP表达式 56

2.6 JSP脚本 56

2.7 JSP的3个编译指令 59

2.7.1 page指令 59

2.7.2 include指令 63

2.8 JSP的7个动作指令 63

2.8.1 forward指令 64

2.8.2 include指令 66

2.8.3 useBean、 setProperty、getProperty指令 67

2.8.4 plugin指令 70

2.8.5 param指令 70

2.9 JSP脚本中的9个内置对象 70

2.9.1 application对象 72

2.9.2 confiig对象 77

2.9.3 exception对象 79

2.9.4 out对象 81

2.9.5 pageContext对象 82

2.9.6 request对象 84

2.9.7 response对象 91

2.9.8 session对象 95

2.10 Servlet介绍 97

2.10.1 Servlet的开发 97

2.10.2 Servlet的配置 99

2.10.3 JSP/Servlet的生命周期 101

2.10.4 load-on-startup Servlet 101

2.10.5访问Servlet的配置参数 102

2.10.6使用Servlet作为控制器 104

2.11 JSP 2的自定义标签 108

2.11.1开发自定义标签类 109

2.11.2建立TLD文件 109

2.11.3使用标签库 110

2.11.4带属性的标签 111

2.11.5带标签体的标签 115

2.11.6以页面片段作为属性的标签 117

2.11.7动态属性的标签 118

2.12 Filter介绍 120

2.12.1创建Filter类 120

2.12.2配置Filter 121

2.12.3使用URL Rewrite实现网站伪静态 125

2.13 Listener介绍 126

2.13.1实现Listener类 127

2.13.2配置Listener 128

2.13.3使用ServletContextAttribute-Listener 129

2.13.4使用ServletRequestListener和ServletRequestAttributeListener 130

2.13.5使用HttpSessionListener和HttpSessionAttributeListener 131

2.14 JSP 2特性 136

2.14.1配置JSP属性 136

2.14.2表达式语言 138

2.14.3 Tag File支持 146

2.15 Servlet 3.0新特性 148

2.15.1 Servlet 3.0的Annotation 148

2.15.2 Servlet 3.0的Web模块支持 149

2.15.3 Servlet 3.0提供的异步处理 151

2.15.4改进的Servlet API 154

2.16本章小结 156

第3章Struts 2的基本用法 157

3.1 MVC思想概述 158

3.1.1传统Model 1和Model 2. 158

3.1.2 MVC思想及其优势 159

3.2 Struts 2的下载和安装 160

3.2.1为Web应用增加Struts 2支持 160

3.2.2在Eclipse中使用Struts 161

3.2.3增加登录处理 162

3.3 Struts 2的流程 165

3.3.1 Struts 2应用的开发步骤 165

3.3.2 Struts 2的流程 166

3.4 Struts 2的常规配置 167

3.4.1常量配置 167

3.4.2包含其他配置文件 173

3.5实现Action 174

3.5.1 Action接口和ActionSupport基类 175

3.5.2 Action访问Servlet API 177

3.5.3 Action直接访问ServletAPI 179

3.5.4使用ServletActionContext访问Servlet API 181

3.6配置Action 182

3.6.1包和命名空间 182

3.6.2 Action的基本配置 185

3.6.3使用Action的动态方法调用 186

3.6.4指定method属性及使用通配符 188

3.6.5配置默认Action 194

3.6.6配置Action的默认处理类 194

3.7配置处理结果 195

3.7.1理解处理结果 195

3.7.2配置结果 195

3.7.3 Struts 2支持的结果类型 197

3.7.4 plainText结果类型 198

3.7.5 redirect结果类型 200

3.7.6 redirectAction结果类型 201

3.7.7动态结果 202

3.7.8 Action属性值决定物理视图资源 202

3.7.9全局结果 204

3.7.10使用PreResultListener 205

3.8配置Struts 2的异常处理 206

3.8.1 Struts 2的异常处理机制 207

3.8.2声明式异常捕捉 208

3.8.3输出异常信息 210

3.9 Convention插件与“约定”支持 211

3.9.1 Action的搜索和映射约定 211

3.9.2按约定映射Result 214

3.9.3 Action链的约定 216

3.9.4自动重加载映射 218

3.9.5 Convention插件的相关常量 218

3.9.6 Convention插件相关Annotation 219

3.10使用Struts 2的国际化 219

3.10.1 Struts 2中加载全局资源文件 219

3.10.2访问国际化消息 220

3.10.3输出带占位符的国际化消息 222

3.10.4加载资源文件的方式 224

3.10.5加载资源文件的顺序 228

3.11使用Struts 2的标签库 228

3.11.1 Struts 2标签库概述 228

3.11.2使用Struts 2标签 229

3.11.3 Struts 2的OGNL表达式语言 230

3.11.4 OGNL中的集合操作 232

3.11.5访问静态成员 233

3.11.6 Lambda (λ)表达式 234

3.11.7控制标签 234

3.11.8数据标签 244

3.11.9主题和模板 254

3.11.10自定义主题 256

3.11.11表单标签 257

3.11.12非表单标签 270

3.12本章小结 273

第4章 深入使用Struts 2 274

4.1详解Struts 2的类型转换 275

4.1.1 Struts 2内建的类型转换器 276

4.1.2基于OGNL的类型转换 276

4.2.3指定集合元素的类型 279

4.1.4自定义类型转换器 280

4.1.5注册类型转换器 283

4.1.6基于Struts 2的自定义类型转换器 284

4.1.7处理Set集合 285

4.1.8类型转换中的错误处理 288

4.2使用Struts 2的输入校验 293

4.2.1编写校验规则文件 294

4.2.2国际化提示信息 296

4.2.3使用客户端校验 298

4.2.4字段校验器配置风格 300

4.2.5非字段校验器配置风格 301

4.2.6短路校验器 302

4.2.7校验文件的搜索规则 304

4.2.8校验顺序和短路 305

4.2.9内建校验器 306

4.2.10基于Annotation的输入校验 316

4.2.11手动完成输入校验 318

4.3使用Struts 2控制文件上传 322

4.3.1 Struts 2的文件上传 322

4.3.2实现文件上传的Action 322

4.3.3配置文件上传的Actio 325

4.3.4手动实现文件过滤 326

4.3.5拦截器实现文件过滤 328

4.3.6输出错误提示 329

4.3.7文件上传的常量配置 330

4.4使用Struts 2控制文件下载 330

4.4.1实现文件下载的Action 330

4.4.2配置Action 332

4.4.3下载前的授权控制 332

4.5详解Struts 2的拦截器机制 334

4.5.1拦截器在Struts 2中的作用 334

4.5.2 Struts 2内建的拦截器 334

4.5.3配置拦截器 336

4.5.4使用拦截器 338

4.5.5配置默认拦截器 338

4.5.6实现拦截器类 340

4.5.7使用拦截器 342

4.5.8拦截方法的拦截器 343

4.5.9拦截器的执行顺序 345

4.5.10拦截结果的监听器 347

4.5.11覆盖拦截器栈里特定拦截器的参数 348

4.5.12使用拦截器完成权限控制 349

4.6使用Struts 2的Ajax支持 351

4.6.1使用stream类型的Result实现Ajax 352

4.6.2 JSON的基本知识 354

4.6.3实现Action逻辑 356

4.6.4 JSON插件与json类型的Result 357

4.6.5实现JSP页面 359

4.7本章小结 361

第5章Hibernate的基本用法 362

5.1 ORM和Hibernate 363

5.1.1对象/关系数据库映射(ORM) 363

5.1.2基本映射方式 364

5.1.3流行的ORM框架简介 365

5.1.4 Hibernate概述 366

5.2 Hibernate入门 366

5.2.1 Hibernate下载和安装 366

5.2.2 Hibernate的数据库操作 367

5.2.3在Eclipse中使用Hibernate 371

5.3 Hibernate的体系结构 376

5.4深入Hibernate的配置文件 377

5.4.1创建Confiiguration对象 377

5.4.2 hibernate.properties文件与hibernate.cfg.xml文件 380

5.4.3 JDBC连接属性 380

5.4.4数据库方言 381

5.4.5 JNDI数据源的连接属性 382

5.4.6 Hibemate事务属性 382

5.4.7二级缓存相关属性 383

5.4.8外连接抓取属性 383

5.4.9其他常用的配置属性 383

5.5深入理解持久化对象 384

5.5.1持久化类的要求 384

5.5.2持久化对象的状态 385

5.5.3改变持久化对象状态的方法 386

5.6深入Hibernate的映射文件 389

5.6.1映射文件结构 389

5.6.2映射主键 392

5.6.3映射普通属性 393

5.6.4映射集合属性 398

5.6.5集合属性的性能分析 407

5.6.6有序集合映射 409

5.6.7映射数据库对象 411

5.7映射组件属性 414

5.7.1组件属性为集合 416

5.7.2集合属性的元素为组件 418

5.7.3组件作为Map的索引 420

5.7.4组件作为复合主键 422

5.7.5多列作为联合主键 425

5.8使用JPA Annotation标注实体 426

5.8.1增加JPA Annotation支持 426

5.8.2 Annotation?还是XML映射文件 429

5.9本章小结 429

第6章 深入使用Hibernate 430

6.1 Hibemate的关联映射 431

6.1.1单向N—1关联 431

6.1.2单向1—1关联 436

6.1.3单向1—N关联 439

6.1.4单向N—N关联 443

6.1.5双向1—N关联 443

6.1.6双向N—N关联 448

6.1.7双向1—1关联 450

6.1.8组件属性包含的关联实体 453

6.1.9基于复合主键的关联关系 456

6.1.10复合主键的成员属性为关联实体 458

6.1.11持久化的传播性 461

6.2继承映射 462

6.2.1采用subclass元素的继承映射 466

6.2.2采用joined-subclass元素的继承映射 467

6.2.3采用union-subclass元素的继承映射 470

6.3 Hibernate的批量处理 472

6.3.1批量插入 473

6.3.2批量更新 474

6.3.3 DML风格的批量更新/删除 474

6.4使用HQL查询 476

6.4.1 HQL查询 476

6.4.2 HQL查询的from子句 478

6.4.3关联和连接 478

6.4.4 HQL查询的select子句 481

6.4.5 HQL查询的聚集函数 482

6.4.6多态查询 483

6.4.7 HQL查询的where子句 483

6.4.8表达式 484

6.4.9 order by子句 486

6.4.10 group by子句 486

6.4.11子查询 487

6.4.12命名查询 488

6.5条件查询 488

6.5.1关联和动态关联 491

6.5.2投影、聚合和分组 492

6.5.3离线查询和子查询 495

6.6 SQL查询 496

6.6.1标量查询 496

6.6.2实体查询 498

6.6.3处理关联和继承 500

6.6.4命名SQL查询 501

6.6.5调用存储过程 502

6.6.6使用定制SQL 503

6.7数据过滤 505

6.8事务控制 508

6.8.1事务的概念 508

6.8.2 Session与事务 509

6.8.3上下文相关的Session 511

6.9二级缓存和查询缓存 511

6.9.1开启二级缓存 512

6.9.2管理缓存和统计缓存 515

6.9.3使用查询缓存 516

6.10事件机制 518

6.10.1拦截器 519

6.10.2事件系统 521

6.11本章小结 525

第7章Spring的基本用法 526

7.1 Spring简介和Spring 3.0的变化 527

7.1.1 Spring简介 527

7.1.2 Spring 3.0的变化 528

7.2 Spring的下载和安装 528

7.2.1在Java SE应用中使用Spring 528

7.2.2在Web应用中使用Spring 529

7.2.3在Eclipse中开发Spring应用 530

7.3 Spring的核心机制:依赖注入 533

7.3.1理解依赖注入 533

7.3.2设值注入 534

7.3.3构造注入 538

7.3.4两种注入方式的对比 539

7.4使用Spring容器 539

7.4.1 Spring容器 540

7.4.2使用ApplicationContext 541

7.4.3 ApplicationContext的国际化支持 542

7.4.4 ApplicationContext的事件机制 544

7.4.5让Bean获取Spnng容器 546

7.5 Spring容器中的Bean 548

7.5.1 Bean的基本定义 548

7.5.2容器中Bean的作用域 551

7.5.3配置依赖 553

7.5.4设置普通属性值 555

7.5.5配置合作者Bean 557

7.5.6使用自动装配注入合作者Bean 557

7.5.7注入嵌套Bean 560

7.5.8注入集合值 561

7.5.9组合属性名称 565

7.5.10 Spring的Bean和JavaBean 566

7.6 Spring 3.0提供的Java配置管理 567

7.7 Bean实例的创建方式及依赖配置 570

7.7.1使用构造器创建Bean实例 570

7.7.2使用静态工厂方法创建Bean 572

7.7.3调用实例工厂方法创建Bean 575

7.8深入理解容器中的Bean 577

7.8.1使用抽象Bean 577

7.8.2使用子Bean 578

7.8.3 Bean继承与Java继承的区别 579

7.8.4容器中的工厂Bean 580

7.8.5获得Bean本身的id 582

7.8.6强制初始化Bean 583

7.9容器中Bean的生命周期 583

7.9.1依赖关系注入之后的行为 584

7.9.2 Bean销毁之前的行为 585

7.9.3协调作用域不同步的Bea 588

7.10深入理解依赖关系配置 591

7.10.1注入其他Bean的属性值 592

7.10.2注入其他Bean的Field值 594

7.10.3注入其他Bean的方法返回值 595

7.11基于XML Schema的简化配置方式 598

7.11.1使用p名称空间配置属性 599

7.11.2使用util Schema 600

7.12 Spring 3.0提供的表达式语言(SpEL) 602

7.12.1使用Expression接口进行表达式求值 603

7.12.2 Bean定义中的表达式语言支持 604

7.12.3 SpEL语法详述 606

7.13本章小结 611

第8章 深入使用Spring 612

8.1两种后处理器 613

8.1.1 Bean后处理器 613

8.1.2 Bean后处理器的用处 617

8.1.3容器后处理器 617

8.1.4属性占位符配置器 619

8.1.5重写占位符配置器 620

8.2 Spring的“零配置”支持 621

8.2.1搜索Bean类 621

8.2.2指定Bean的作用域 624

8.2.3使用@Resource配置依赖 625

8.2.4使用@PostConstruct和@PreDestroy定制生命周期行为 626

8.2.5 Spring 3.0新增的Annotation 626

8.2.6自动装配和精确装配 627

8.3资源访问 629

8.3.1 Resource实现类 630

8.3.2 ResourceLoader接口和ResourceLoaderAware接口 635

8.3.3使用Resource作为属性 638

8.3.4在ApplicationContext中使用资源 639

8.4 Spring的AOP 643

8.4.1为什么需要AOP 643

8.4.2使用AspectJ实现AOP 644

8.4.3 AOP的基本概念 649

8.4.4 Spring的AOP支持 650

8.4.5基于Annotation的“零配置”方式 651

8.4.6基于XML配置文件的管理方式 666

8.5 Spring的事务 672

8.5.1 Spring支持的事务策略 673

8.5.2使用TransactionProxyFactoryBean创建事务代理 678

8.5.3 Spring 2.X的事务配置策略 681

8.5.4使用@Transactional 685

8.6 Spring整合Struts 2 686

8.6.1启动Spring容器 686

8.6.2 MVC框架与Spring整合的思考 688

8.6.3让Spring管理控制器 689

8.6.4使用自动装配 692

8.7 Spring整合Hibernate 695

8.7.1 Spring提供的DAO支持 695

8.7.2管理Hibernate的SessionFactory 696

8.7.3使用HibernateTemplate 697

8.7.4使用HibernateCallback 701

8.7.5实现DAO组件 703

8.7.6使用10C容器组装各种组件 705

8.7.7使用声明式事务 707

8.8 Spring整合JPA 708

8.8.1管理EntityManager 709

8.8.2使用JpaTemplate 711

8.8.3使用JpaCallback 713

8.8.4借助JpaDaoSupport实现DAO组件 714

8.8.5使用声明式事务 714

8.9本章小结 715

第9章 企业应用开发的思考和策略 716

9.1企业应用开发面临的挑战 717

9.1.1可扩展性、可伸缩性 717

9.1.2快捷、可控的开发 718

9.1.3稳定性、高效性 719

9.1.4花费最小化利益最大化 719

9.2如何面对挑战 719

9.2.1使用建模工具 719

9.2.2利用优秀的框架 720

9.2.3选择性地扩展 722

9.2.4使用代码生成器 722

9.3常见设计模式精讲 722

9.3.1单例模式 723

9.3.2简单工厂 724

9.3.3工厂方法和抽象工厂 730

9.3.4代理模式 733

9.3.5命令模式 739

9.3.6策略模式 741

9.3.7门面模式 743

9.3.8桥接模式 746

9.3.9观察者模式 750

9.4常见的架构设计策略 753

9.4.1贫血模型 753

9.4.2领域对象模型 756

9.4.3合并业务逻辑对象与DAO对象 758

9.4.4合并业务逻辑对象和Domain Object 759

9.4.5抛弃业务逻辑层 761

9.5本章小结 762

第10章 简单工作流系统 763

10.1项目背景及系统结构 764

10.1.1应用背景 764

10.1.2系统功能介绍 764

10.1.3相关技术介绍 765

10.1.4系统结构 766

10.1.5系统的功能模块 766

10.2 Hibernate持久层 767

10.2.1设计持久化实体 767

10.2.2创建持久化实体类 768

10.2.3映射持久化实体 772

10.3实现DAO层 777

10.3.1 DAO组件的定义 778

10.3.2实现DAO组件 783

10.3.3部署DAO层 787

10.4实现Service层 789

10.4.1业务逻辑组件的设计 789

10.4.2实现业务逻辑组件 789

10.4.3事务管理 795

10.4.4部署业务逻辑组件 795

10.5实现任务的自动调度 797

10.5.1使用Quartz 797

10.5.2在Spring中使用Quartz 802

10.6实现系统Web层 804

10.6.1 Struts 2和Spring的整合 804

10.6.2控制器的处理顺序 805

10.6.3员工登录 806

10.6.4进入打卡 808

10.6.5处理打卡 810

10.6.6进入申请 811

10.6.7提交申请 812

10.6.8使用拦截器完成权限管理 814

10.7本章小结 816