《Java 第一步:基础+设计模式+Servlet+EJB+Struts+Spring+Hibernate》PDF下载

  • 购买积分:23 如何计算积分?
  • 作  者:胡书敏,陈宝峰,程炜杰编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2009
  • ISBN:9787302186076
  • 页数:896 页
图书介绍:本书首先讲述什么是面向对象思想,以及面向对象思想对Java开发有什么帮助,并在此基础上,围绕着面向对象思想的“封装”、“继承”和“多态”三个主线,根据实例,讲述Java的基本语法,包括Java的基本数据结构、基本运算符、类的定义和基本程序结构等基础知识。

第1章 Java与面向对象思想 1

1.1初识Java语言 1

1.1.1 Java是什么 1

1.1.2为什么要选用Java语言 2

1.1.3 Java语言的解释执行与跨平台特性 3

1.1.4怎样学好Java 4

1.2什么是面向对象思想 5

1.2.1软件开发的方法学——面向对象思想提出的背景 5

1.2.2面向对象的物质基础——类与封装 6

1.2.3抽象与代码复用——抽象类与概念抽象 7

1.2.4模块的开关——接口与功能抽象 8

1.2.5同名但不同参——多态与重载 8

1.2.6具有面向对象思想语言的优势 9

1.3开发我们的第一个Java程序 10

1.3.1如何配置Java的开发环境 10

1.3.1.1下载和安装JDK 10

1.3.1.2设置JDK的环境变量 10

1.3.3.3安装Eclipse 12

1.3.3.4添加Eclipse的中文插件 12

1.3.2编写HelloWorld程序 12

1.3.3运行HelloWorld程序 13

1.3.4使用Eclipse集成开发环境运行HelloWorld程序 13

1.4本章小结 16

第2章 开始学习Java语法 17

2.1基本数据类型与操作符 17

2.1.1基本数据类型 17

2.1.2基本操作符 18

2.1.3操作符优先级 21

2.1.4对象型的数据类型 22

2.1.5方法(函数)的参数和返回值 24

2.2程序流程控制 25

2.2.1顺序与分支 25

2.2.2循环流程 27

2.2.3有争议的goto语句 28

2.2.4使用if语句判定是否是闰年 29

2.2.5使用循环语句计算阶乘 30

2.2.6使用switch语句控制输出 30

2.3类与封装 32

2.3.1类的构成要素 32

2.3.2类的构造函数与构造次序 32

2.3.3用package封装工具类和用import引入需要的类 35

2.3.4修饰符与类内部对象的可见性 36

2.3.5静态方法与抽象方法 39

2.3.6类的封装性与模块的解耦合 42

2.3.7垃圾收集机制与Finalize语句段 44

2.3.8提供用电服务类的示例代码 46

2.4继承与抽象类 48

2.4.1继承的设计动机 48

2.4.2抽象类与概念抽象 49

2.5接口与实现 51

2.5.1接口的语法 51

2.5.2为什么要使用接口 52

2.5.3接口与抽象类在本质上的区别——空调外的例子 52

2.5.4通过实现接口的方式开发电视和收音机类 53

2.6具有“分离”特性的多态 55

2.6.1从重载中归纳多态的特性 55

2.6.2多态与“分离”——实现小动物叫 56

2.7 RTTI与反射 58

2.7.1君子无不可用之势——论后期编译的效果 58

2.7.2在代码里实现RTTI的效果 59

2.7.3类的照妖镜——反射 60

2.7.4使用反射机制实现代码还原 61

2.8通过约束降低出错可能性的泛型 64

2.8.1什么是泛型 64

2.8.2泛型的示例代码 64

2.9本章小结 65

第3章 Java中的数据结构——集合类 66

3.1集合类与数据容纳 66

3.1.1在项目中自定义数据类型的难处 66

3.1.2什么是数据结构 67

3.1.3Java集合中的两类数据结构 67

3.2线性表型的集合 67

3.2.1顺序访问的典范——数组类 67

3.2.2数组的改进版本——Vector类 70

3.2.3先进后出的Stack类 75

3.2.4链表式的List接口以及LinkedList实现类 78

3.2.4.1 List接口里的方法 79

3.2.4.2 List实现类及其功能 79

3.2.4.3 List代码示例 80

3.2.5 不允许有重复元素的Set接口 82

3.2.5.1 Set接口里的方法 82

3.2.5.2 Set实现类及其功能 82

3.2.6对第一类集合的归纳 84

3.2.7使用Vector模拟Stack的动作 84

3.2.8使用Vector模拟队列的动作 87

3.3键值对型的集合 89

3.3.1为什么要使用Hash类 89

3.3.2键值对的典范——Hashtable类 90

3.3.3通过“魔术代码”分析equals和hashCode方法 92

3.3.4封装了散列表数据结构的Map接口 97

3.3.4.1 Map接口里的方法 97

3.3.4.2实现Map接口的类 99

3.3.4.3 Map代码实例 99

3.3.4.4采用Entry对象遍历Map 100

3.3.5对第二类集合的归纳 101

3.4枚举器与数据操作 102

3.4.1访问集合类的“不确定性”难题 102

3.4.2“大智若愚”的枚举器接口 102

3.4.3枚举器“分离”思想的启示 104

3.4.4使用枚举器定义统一的访问各集合的方法——一个打印的例子 104

3.5深浅拷贝 106

3.5.1“偷懒”的共享数据块的方法——浅拷贝 107

3.5.2似是而非的浅拷贝——只拷贝ArrayList对象 108

3.5.3“刨根撅底”的深拷贝——实现对ArrayList的整体克隆 110

3.6 Java集合类中的排序 112

3.6.1让你的对象是可比较的 112

3.6.2为你的对象定义比较器 114

3.7本章小结 116

第4章 有异常怎么办 117

4.1异常的基本概念 117

4.1.1险恶的项目运行环境 117

4.1.2步步为营的异常处理机制 118

4.1.3Java虚拟机处理异常的流程 120

4.2异常技术综述 121

4.2.1错了不要紧——论运行期异常 121

4.2.2自食其力——处理自己的异常 122

4.2.3有问题就报告——异常的抛出声明 126

4.2.4弥补阙漏的自定义异常 128

4.3异常的陷阱 130

4.3.1异常与继承 130

4.3.2谁动了我的异常 131

4.3.3论资排辈的异常级别 133

4.4本章小结 134

第5章 IO流与流读写操作 135

5.1输入流与输出流 135

5.1.1什么是流对象 135

5.1.2复杂的输入输出应用与简单的Java IO类库 135

5.1.3 Java里IO流对象的逻辑关系 136

5.2 IO对象使用说明 137

5.2.1怎样读写文件——读写一个文本文件 138

5.2.2怎样读写内存数据 141

5.2.3怎样读写带格式的数据 144

5.2.4标准设备与重定向 146

5.2.5压缩和解压缩ZIP文件——创建一个压缩和解压缩的程序 150

5.2.6用StreamTokenizer类输出不同格式的Token 153

5.3本章小结 155

第6章 Java与多线程开发 156

6.1线程到底是什么 156

6.1.1线程的定义 156

6.1.2线程的生命周期 157

6.1.3操作系统与线程并发 158

6.2定义自己的线程,继承Thread类 158

6.2.1 Thread类与线程 158

6.2.2使用Thread类实现计数器功能 158

6.3解决继承局限性,实现Runnable接口 162

6.3.1 Runnable接口与线程 162

6.3.2使用Runnable接口实现计数器功能 162

6.4避免冲突,控制多线程的并发 165

6.4.1劳逸结合——线程的睡眠 165

6.4.2控制数据的有效性,通过synchronized关键字声明同步——一个由并发引起的数据错误修改及解决的例子 166

6.4.3线程的等待与通知线程恢复工作 177

6.4.4死锁的成因 177

6.4.5特事特办,线程的优先级 180

6.4.6多线程经典案例——生产者消费者问题 183

6.5本章小结 186

第7章 Java与网络开发 187

7.1网络开发的基本需求 187

7.1.1网络通讯模型和网络通讯协议 187

7.1.2通过TCP协议建立可靠的通讯信道 188

7.1.2.1两军问题与建立可靠连接的难题 188

7.1.2.2通过三次握手,建立通讯信道 189

7.1.2.3支持TCP协议的Java包 190

7.1.3通过UDP协议高效地发送数据报文 192

7.1.3.1 UDP协议与数据报文 192

7.1.2.2 Java的UDP相关类说明 193

7.2面向套接字编程 195

7.2.1使用套接字实现基于TCP协议的服务器和客户机程序 195

7.2.1.1开发服务器端代码 196

7.2.1.2开发客户端代码 198

7.2.1.3运行效果演示 199

7.2.2使用套接字连接多个客户机 200

7.2.2.1开发服务器端代码 200

7.2.2.2开发客户端代码 203

7.2.2.3运行效果演示 206

7.2.3 UDP协议与传输数据报文 207

7.2.3.1开发服务器端代码 207

7.2.3.2开发客户端代码 212

7.2.3.3开发客户端代码 213

7.3 RMI开发概述 215

7.3.1什么是RMI 215

7.3.2 RMI的实质——透明地调用远端方法 215

7.3.3 RMI代码实例——一个非常简单的Hello World程序 216

7.3.3.1编写提供远程方法的接口 216

7.3.3.2编写提供远程方法的实现类 217

7.3.3.3编写RMI客户端代码 218

7.3.3.4配置运行RMI代码 219

7.4本章小结 220

第8章 Java与数据库开发 221

8.1 Java连接数据库的工具 221

8.1.1连接数据库的通用接口 221

8.1.2 JDBC模型与数据库访问控制 222

8.1.3 JDBC接口概述 224

8.2以JDBC-ODBC的方式连接数据库 225

8.2.1配置Access数据库环境 225

8.2.1.1创建一个新的数据库 226

8.2.1.2在新数据库中创建一个表 227

8.2.2配置ODBC数据源连接 233

8.2.3使用JDBC_ ODBC桥接方式连接数据库 235

8.2.4获得并遍历结果集 237

8.3使用数据库驱动程序连接SQL Server 2005 239

8.3.1配置SQL Server数据库环境和数据库驱动程序 239

8.3.2使用JDBC驱动程序的方式连接数据库 242

8.3.3获得并遍历结果集 245

8.4使用数据库驱动程序连接数据库MySQL 250

8.4.1配置MySQL数据库环境和驱动程序 250

8.4.2使用驱动程序连接MySQL 253

8.4.3 Eclipse下的运行结果 255

8.5本章小结 256

第9章 Java与图形界面开发 257

9.1开发Applet应用程序 257

9.1.1什么是Applet 257

9.1.2 Applet的生命周期 258

9.1.3向Applet里添加控件 258

9.1.4 Applet的事件处理模型 260

9.1.5开发Applet的HelloWorld程序 261

9.1.5.1 HelloWorld程序 261

9.1.5.2运行HelloWorld 262

9.2重量级的图形开发工具——AWT库 264

9.2.1什么是AWT 264

9.2.2 AWT的控件说明 264

9.2.2.1容器 265

9.2.2.2组件 265

9.2.2.3布局管理器 266

9.2.3事件监听与事件处理 266

9.2.4 AWT的控件代码 267

9.3让界面开发更容易 270

9.3.1什么是Swing 270

9.3.2 Swing的容器与控件说明 270

9.3.2.1 Swing的容器 270

9.3.2.2 Swing的组件 271

9.3.3 Swing的布局控制 271

9.3.4 Swing的事件监听与事件处理机制 271

9.3.5使用Swing开发象棋界面 271

9.3.5.1象棋程序设计 271

9.3.5.2棋子和类Chess 272

9.3.5.3落子点和类Point 274

9.3.5.4规则和类ChessRule 277

9.3.5.5棋盘和类ChessBoard 277

9.3.5.6类ChessFrame 284

9.4本章小结 287

第10章 生命游戏 288

10.1需求分析与设计 288

10.1.1囚徒博弈 288

10.1.2生命游戏和囚徒博弈 288

10.1.3生命游戏的基本需求 290

10.1.3.1博弈规则 290

10.1.3.2博弈的邻居 291

10.1.3.3移动规则 292

10.1.3.4基本需求 292

10.1.3.5模块设计 293

10.2生命游戏说明 293

10.2.1开发主界面 293

10.2.1.1使用Applet开发主界面 293

10.2.1.2参数设置界面 296

10.2.1.3博弈规则设置界面 297

10.2.1.4模式选择界面 298

10.2.1.5按钮控制界面 301

10.2.1.6设置默认参数 301

10.2.1.7参数说明 302

10.2.2开发游戏模拟界面 305

10.2.2.1获得游戏参数 305

10.2.2.2数据显示界面 306

10.2.2.3模拟界面 307

10.2.2.4构造函数 312

10.2.3开发事件监听与响应机制 312

10.3业务逻辑开发 315

10.3.1企业模块 315

10.3.2生命游戏的逻辑代码 317

10.3.3让生命运动起来 323

10.4运行游戏 324

10.4.1编写运行Applet的网页 324

10.4.2设置游戏参数 325

10.4.3企业ID显示模式 326

10.4.4企业方向显示模式 328

10.4.5企业策略显示模式 329

10.5本章小结 330

第11章 基于图形和网络的Java聊天室 331

11.1设计我们的聊天室 331

11.1.1需求分析 331

11.1.2模块设计 331

11.1.3创建chatroom工程 333

11.2设计并开发数据库模块 333

11.2.1设计数据库的表结构 333

11.2.2设计和开发数据库连接模块 334

11.2.3设计和开发数据库处理模块 336

11.3 swing界面模块开发 338

11.3.1创建Swing类 338

11.3.2登录界面 340

11.3.3注册界面 343

11.3.4聊天界面 346

11.4 swing界面模块开发 348

11.4.1客户端开发 348

11.4.2使用socket发送非阻塞I0流 348

11.4.3使用socket接收非阻塞I0流 352

11.5服务端开发 356

11.5.1非阻塞I0在socket服务器上的应用 356

11.5.2服务端程序 356

11.6运行效果演示 362

11.7本章小结 364

第12章 学生信息管理系统 365

12.1需求分析与设计 365

12.1.1基本需求 3

12.1.2模块设计 365

12.1.3数据库设计 366

12.2界面设计 369

12.2.1登录界面的设计 369

12.2.2查询界面的设计 373

12.2.3新建界面的设计 374

12.2.4修改界面和删除界面的设计 375

12.3系统模块的开发 376

12.3.1学生信息对象 376

12.3.2数据库操作模块 377

12.3.3登录模块 384

12.3.4新建模块 385

12.3.5修改模块 387

12.3.6删除模块 389

12.3.7查询模块 390

12.4本章小结 401

第13章 MVC模式与项目开发 402

13.1 MVC模式概述 402

13.1.1 OCP原则与模块分离思想 402

13.1.2什么是MVC模式 403

13.1.2.1模型层 404

13.1.2.2视图层 405

13.1.2.3控制器 405

13.1.2.4 MVC模型编程综述 406

13.1.3 MVC模式的工作流程 406

13.1.3.1第一步:设计模型接口 407

13.1.3.2第二步:设计视图接口,基本方法同模型接口的设计 408

13.1.4为什么要使用MVC模式 408

13.1.4.1 MVC的优点 408

13.1.4.2 MVC的适用性 409

13.2 MVC模型示例代码 409

13.2.1开发模型组件 409

13.2.2开发视图组件 415

13.2.3开发控制器组件 418

13.2.4让蛇开始活动(MVC工作流程) 420

13.3再论MVC模式 421

13.3.1“分离”思想带来的好处 422

13.3.2 MVC在代码维护时的优势 422

13.3.3 MVC在代码扩展时的优势 423

13.3.4 MVC与Java架构设计 423

13.4本章小结 426

第14章 设计模式与项目开发 427

14.1设计模式概述 427

14.1.1什么是设计模式 427

14.1.2设计模式解决问题的一般途径 428

14.1.3为什么要使用设计模式 428

14.1.4设计模式的优势 429

14.2工厂模式与构造分离 429

14.2.1工厂模式概述 429

14.2.2分离生产过程与生产动作 430

14.2.3工厂模式与连接对象构造 431

14.3桥接模式与业务扩展 434

14.3.1桥接模式与DIP原则 434

14.3.2架在不同解决方案之间的桥梁——桥接模式 435

14.3.3桥接模式与业务扩展 436

14.3.4使用桥接模式优化数据库连接代码 438

14.4观察者模式与拉推数据 439

14.4.1饲机而动的观察者 439

14.4.2观察者与后继动作 441

14.4.3使用观察者模式实现数据动态更新 443

14.5 Vistor模式与RTTI 445

14.5.1 RTTI的局限性 446

14.5.2包容不同类的Vistor模式 447

14.5.3使用Vistor模式实现客户关系动态管理 448

14.6外观、代理模式与屏蔽细节 453

14.6.1什么是外观和代理模式 453

14.6.2外观和代理模式的使用场景及其优势 454

14.6.3使用外观和代理模式优化数据库通用模块 454

14.7单例模式 457

14.7.1只允许有一个实例的单例模式 457

14.7.2单例模式的语法实现 458

14.7.3单例模式的使用案例 459

14.8本章小结 460

第15章 DAO模式与数据库访问 461

15.1 DAO模式与数据库管理架构 461

15.1.1什么是DAO设计模式 461

15.1.2纵观DAO模式的优势 462

15.2 DAO模式应用示例 463

15.2.1使用DAO模式连接数据库 464

15.2.2在DAO里编写数据库访问逻辑 465

15.2.3数据库访问逻辑和业务逻辑的结合体——DAO 472

15.2.4编写业务逻辑 473

15.2.5 DAO模式与业务变更 479

15.3本章小结 483

第16章 设计模式的应用 485

16.1设计模式与代码优化 485

16.1.1学生信息管理系统的需求变更 485

16.1.2业务变更与代码重构 486

16.2使用设计模式提高代码的弹性 487

16.2.1什么是代码的弹性 487

16.2.2利用桥接模式改善系统的弹性 487

16.3数据库的设计和修改 489

16.3.1 User表的设计 489

16.3.2 Students_Information表的设计 490

16.3.3 Teachers_Information表的设计 491

16.4重构系统 492

16.4.1桥的一端——数据库连接 492

16.4.1.1现有的数据库模块 492

16.4.1.2数据库连接接口 494

16.4.1.3采用单态模式实现具体的数据库连接动作 494

16.4.1.4获得数据库连接的工厂模式 497

16.4.2桥的另一端——信息类 498

16.4.2.1抽象的信息类Person 498

16.4.2.2 Student——Person类的扩展 500

16.4.2.3 Teacher——Person的另一个扩展 507

16.4.3业务流程的修改 514

16.4.3.1登录界面的修改 514

16.4.3.2学生信息业务流程的修改 518

16.4.3.3教师信息管理的业务流程 524

16.4.4设计模式总结 524

16.5本章小结 525

第17章 基于JSP+Servlet的Web架构 526

17.1 Java的Web开发概述 526

17.1.1 Web开发里的显示、控制、业务三要素 526

17.1.2 Java处理Web应用的基本方式 527

17.1.3各司其职的Java Web组件 528

17.1.4在Eclipse上引入MyEclipse插件 529

17.1.5在Eclipse+MyEclipse环境上配置Web服务器环境 530

17.2开发简单的Servlet 533

17.2.1 Servlet的生命周期 533

17.2.2编写简单的Servlet 534

17.2.3编写Servlet的相关配置文件 536

17.2.4打包和发布Web应用 536

17.2.5在Eclipse集成环境中开发Servlet并发布运行 537

17.3开发简单的JSP程序 543

17.3.1 JSP的基本语法和工作过程 543

17.3.2只让JSP做它擅长的事——论JSP的工作范围 544

17.3.3编写JSP的Hello World程序 545

17.3.4打包发布JSP的Web应用程序 545

17.3.5在Eclipse集成开发环境中编写JSP并运行 545

17.4开发JSP+Servlet构架的程序 547

17.4.1编写登录表单页面 547

17.4.2编写登录成功后的展示页面 548

17.4.3编写登录失败后的展示页面 548

17.4.4编写负责处理登录逻辑的Servlet类并运行测试 549

17.4.5准备数据库以及相关驱动 551

17.4.6修改LoginServlet,添加JDBC访问代码 552

17.5对JSP+Servlet+JDBC模式的思考 553

17.5.1组件“各司其职”带来的好处 554

17.5.2 MVC思想及其开发模式的雏形 554

17.5.3没有封装业务逻辑的后果 554

17.6本章小结 555

第18章 基于JavaBean和EJB的Web架构 556

18.1组件思想与多层Web架构 556

18.1.1为什么要构建多层的Web架构 556

18.1.2标准零件般的Java Web组件 557

18.1.3实现后台业务逻辑的JavaBean与EJB组件 559

18.2使用JavaBean组件 560

18.2.1编写负责显示逻辑的JSP代码 560

18.2.2编写封装业务逻辑的JavaBean代码 561

18.2.3通过DAO模式连接访问数据库 564

18.2.4编写数据源的配置文件 567

18.2.5在集成环境里发布JSP+JavaBean+数据库的代码 568

18.2.6在Web服务器里运行JSP+Javabean+数据库代码 569

18.3开发基于JSP+Servlet+EJB+JDBC的Web构架 569

18.3.1“大”材“小”用的Javabean与“小”材“大”用的EJB 569

18.3.2在集成环境里配置EJB的集成开发环境 570

18.3.3EJB的种类及其用途 571

18.3.4给Javabean加个“E”——升级现有的Javabean组件之了解EJB的规范 572

18.3.5编写负责显示逻辑的JSP代码 572

18.3.6编写负责控制逻辑的Servlet代码 575

18.3.7编写负责业务逻辑的EJB代码 577

18.3.8使用工厂模式规范EJB的初始化过程 580

18.3.9通过DAO模式连接访问数据库 580

18.3.10编写EJB和Servlet的配置文件 581

18.3.11打包发布EJB包 582

18.3.12在集成环境里配置和运行EJB程序 583

18.4开发会话Bean+实体Bean的综合应用 587

18.4.1会话Bean和实体Bean的用途分析 587

18.4.2根据外观模式的思想整合会话Bean与实体Bean 587

18.4.3编写负责显示逻辑的JSP代码 588

18.4.4编写负责控制逻辑的Servlet代码 590

18.4.5编写承上启下的会话Bean代码 592

18.4.6编写负责业务逻辑的实体Bean代码 594

18.4.7编写Servlet和EJB的配置环境 597

18.4.8打包发布EJB包 601

18.5对EJB组件的思考 601

18.5.1用标准化的EJB积木搭建外观统一的J2EE模型 601

18.5.2J2EE架构里的MVC模式 601

18.5.3从Javabean升级到EJB的启示 602

18.5.4为什么J2EE和EJB能满足企业级的开发需求 602

18.6本章小结 602

第19章 基于J2EE的在线购物系统 603

19.1需求分析与设计 603

19.1.1在线购物系统需求概述 603

19.1.2根据J2EE架构设计模块和流程 605

19.1.3数据库设计 607

19.1.4配置运行环境 611

19.2系统整体架构 612

19.2.1前台展现层设计——通过MVC模式实现页面跳转 612

19.2.2中间业务层设计——通过DAO使用会话Bean建立业务逻辑 624

19.2.3后台数据层设计——通过EJB操作数据库 629

19.2.4整体架构图 630

19.3公共模块 631

19.3.1编写负责显示逻辑的JSP代码 631

19.3.2编写控制器层的Servlet和Action类 634

19.3.3编写封装业务逻辑的DAO类 635

19.3.4编写访问数据库的EJB 636

19.4购物车管理模块 643

19.4.1编写负责显示逻辑的JSP代码 643

19.4.2编写控制器层的Servlet和Action类 647

19.5代码发布 649

19.5.1编写配置文件 649

19.5.2组装EJB组件和Web应用 655

19.5.3显示运行效果 665

19.6企业级项目中应用EJB的思考 667

19.6.1使用EJB可以减轻项目维护的工作量 667

19.6.2 EJB里包含的设计模式 668

19.6.3重量级和轻量级组件的比较 668

19.7本章小结 668

第20章 Struts架构与Web应用 669

20.1 Struts与MvC思想 669

20.1.1从Struts架构里看“架构”的概念 669

20.1.2 MVC思想与分层管理的好处 671

20.1.3 Struts——“抽”出Web应用里“像”的流程 671

20.1.3.1 Struts模型组件 671

20.1.3.2 Struts控制组件 672

20.1.3.3 Struts模型层 672

20.1.3.4 Struts视图组件 673

20.1.4可以抽象出Web流程的Struts重要组件说明 673

20.1.5配置Struts开发环境 673

20.2 Struts的HelloWorld实例 675

20.2.1用JSP编写视图端的代码 676

20.2.1.1 Struts HTML类标签 677

20.2.1.2生成HTML的表单标标签 678

20.2.1.3显示错误和消息的标签 681

20.2.1.4 Struts的其他标签 682

20.2.2编写ActionServlet类 682

20.2.3编写ActionForm类 684

20.2.4编写Action类 686

20.2.5编写ActionMapping类和ActionForward类 689

20.2.6编写配置文件 689

20.2.6.1配置web.xml文件 690

20.2.6.2配置struts-confiig.xml文件 691

20.2.7在集成环境上编译与发布Struts代码 693

20.2.8效果演示与工作流程概述 695

20.3对Struts组件的思考 696

20.3.1 Struts的体系结构与Web流程抽象 696

20.3.2 Struts与业务逻辑如何耦合 697

20.3.3分工不同的Struts与EJB 697

20.4 Struts 2.0新特性 698

20.4.1 Struts 2.0和Struts 1.X的比较 698

20.4.2 Struts 2.0处理请求的流程 699

20.4.3 Struts 2.0的示例代码——经典的Hello World 700

20.5本章小结 704

第21章 Spring架构与Web应用 705

21.1 Spring与控制反转思想 705

21.1.1用到的时候才去获取的控制反转思想 705

21.1.2控制反转与轻量级Web开发 708

21.1.3基于控制反转的Spring概述 709

21.1.4配置Spring的开发环境 710

21.2 Spring的HelloWorld实例 714

21.2.1编写服务提供代码 714

21.2.2在xml文件里登记各项服务 715

21.2.3编写服务调用代码 716

21.2.4效果演示与工作流程概述 717

21.3 Spring的常用技术 717

21.3.1拦截器与AOP编程 718

21.3.2在Spring里实现事务管理 723

21.3.3数据持久性与ORM思想 725

21.4对Spring组件的思考 729

21.4.1 Spring组件是对重量级Web组件的颠覆 729

21.4.2 Spring组件对轻量级Web开发的启示 730

21.4.3指导Web流程的Struts与包含强力工具的Spring组件 731

21.5本章小结 731

第22章 ORM组件与数据库访问控制 732

22.1 ORM组件与数据映射 732

22.1.1什么是ORM 732

22.1.2为什么要用ORM组件 732

22.1.3 ORM组件包含的外观设计模式 733

22.1.4配置ORM组件的开发环境 734

22.2 Hibernate与数据库开发 740

22.2.1数据映射的需求分析 740

22.2.2数据映射的实例 741

22.2.3编写ORM的客户端代码 745

22.2.4效果演示与工作流程概述 749

22.3 Hibernate组件入门 751

22.3.1Hibernate数据库连接APl 751

22.3.2 Hibernate对JDBC的改进 753

22.3.3 Hibernate与数据库事务管理 753

22.3.4 Hibernate配置文件分析 757

22.4对ORM组件的思考 760

22.4.1与轻量级Web组件的关系 760

22.4.2数据映射与DAO模式 761

22.4.3数据映射与数据库分层应用 762

22.5本章小结 763

第23章 Struts与Spring集成开发 764

23.1 Struts与Spring集成概述 764

23.1.1 Struts和Spring的固有局限 764

23.1.2两者集成后的优势 765

23.1.3准备Struts和Spring集成的开发环境 765

23.2在Struts中集成Spring 769

23.2.1需求描述 769

23.2.2基于Struts的实现 770

23.2.2.1配置开发环境 770

23.2.2.2编写web.xml文件 773

23.2.2.3编写环境界面的代码 775

23.2.2.4编写Struts里的form类 775

23.2.2.5编写Struts里的Action类 776

23.2.2.6编写Struts里的struts-config.xml文件 777

23.2.2.7把Struts部署到服务器上 778

23.2.3基于Spring中的ActionSupport类整合Struts 780

23.2.3.1配置开发环境 780

23.2.3.2编写web.xml文件 781

23.2.3.3编写环境界面的代码 782

23.2.3.4编写Struts里的form类 783

23.2.3.5编写Struts里的Action类 783

23.2.3.6配置和编写Spring里的config.xml相关文件 784

23.2.3.7编写Struts里的struts-confiig.xml文件 786

23.2.3.8把Struts部署到服务器上 787

23.2.4基于Spring中的DelegatingRequestProcessor类整合Struts 789

23.2.4.1配置开发环境 789

23.2.4.2编写web.xml文件 789

23.2.4.3编写环境界面的代码 791

23.2.4.4编写Struts里的form类 792

23.2.4.5编写Struts里的Action类 792

23.2.4.6配置和编写Spring里的config.xml相关文件 793

23.2.4.7编写Struts里的struts-config.xml文件 795

23.2.4.8把Struts部署到服务器上 796

23.2.5基于Spring中的DelegatingActionProxy类整合Struts 798

23.2.5.1配置开发环境 798

23.2.5.2编写web.xml文件 798

23.2.5.3编写环境界面的代码 799

23.2.5.4编写Struts里的form类 801

23.2.5.5编写Struts里的Action类 801

23.2.5.6配置和编写Spring里的config.xml相关文件 802

23.2.5.7编写Struts里的struts-config.xml文件 804

23.2.5.8把Struts部署到服务器上 805

23.3集成后的思考 806

23.3.1利用控制反转为代码降耦 807

23.3.2 Spring与Struts三种整合方式的对比 807

23.4本章小结 807

第24章 基于Struts+Spring+Hibernate的在线购物系统 809

24.1 EJB迁移到SSH架构的工作要点 809

24.1.1配置开发环境 809

24.1.2 SSH和EJB的对比 814

24.1.3迁移的工作要点分析 814

24.2整体架构的改写 829

24.2.1前台展现层改写——通过Struts的MVC模式实现页面跳转 829

24.2.2中间业务层改写——通过DAO建立业务逻辑 832

24.2.3后台数据层改写——通过Hibernate将vo对象保存到数据库 833

24.3代码发布 835

24.3.1编写配置文件 835

24.3.2在集成开发环境里发布项目 848

24.3.3显示运行效果 854

24.4 SSH架构的思考 856

24.4.1轻量级和重量级Web构架的差异 857

24.4.2 SSH的适用范围 857

24.5本章小结 857

第25章 Java的Web Service应用 858

25.1 Web Service概述 858

25.1.1什么是Web Service 858

25.1.2为什么要使用Web Service 858

25.1.3 Web Service的特点 859

25.2 Web Service协议 859

25.2.1 SOAP——简单对象访问协议 860

25.2.2 WSDL—— Web服务描述语言 862

25.3开发基于Axis2的Web Service应用程序 863

25.3.1什么是Axis2 863

25.3.2搭建Web Service环境 864

25.3.2.1安装Ant环境 864

25.3.2.2安装Axis2 865

25.3.3第一个Web Service程序 866

25.3.3.1服务端的开发 866

25.3.3.2客户端的开发 871

25.3.4高效的Axiom 875

25.3.4.1服务端的开发 875

25.3.4.2客户端的开发 878

25.4 J2EE架构里的Web Service 881

25.4.1在struts架构中使用Web Service 881

25.4.1.1创建一个struts项目 881

25.4.1.2建立框架 882

25.4.1.3编写代码 885

25.4.2 EJB中的Web Service 894

25.4.2.1 Web Service环境 894

25.4.2.2感受EJB中的Web Service 895

25.5本章小结 896