《Java Web整合开发王者归来 JSP+Servlet+Struts+Hibernate+Spring》PDF下载

  • 购买积分:26 如何计算积分?
  • 作  者:刘京华等编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2010
  • ISBN:9787302209768
  • 页数:1010 页
图书介绍:本书分为9篇,内容层次清晰,难度循序渐进:第1篇为入门篇,内容包括Java Web开发概述等;第2篇为基础篇,内容包括Servlet技术、JSP技术、会话跟踪、过滤器Filter等;第3篇为高级篇,内容包括JSTL标签库的使用、如何自定义标签、资源国际化等。

第1篇 入门篇 2

第1章 Java Web开发概述 2

1.1 Web相关概念 2

1.1.1 胖客户端程序RCP 2

1.1.2 瘦客户端程序TCP 2

1.1.3 B/S与C/S结构 3

1.2 Web开发背景知识 3

1.2.1 Web访问基本原理 3

1.2.2 HTTP超文本传输协议 4

1.2.3 Web浏览器 5

1.2.4 Web服务器 5

1.3 Web开发技术发展历史 6

1.3.1 传统的Web服务器模式开发 6

1.3.2 动态展现页面技术 6

1.3.3 CGI实现页面的动态生成 6

1.3.4 Java Servlet:改进的CGI 7

1.3.5 JSP:Servlet的模板 8

1.3.6 JSP基本原理 9

1.4 本章小结 10

第2章 搭建Java Web开发环境 11

2.1 Java Web开发环境概述 11

2.1.1 开发工具包JDK 11

2.1.2 集成开发环境IDE 12

2.1.3 Java服务器 12

2.2 下载安装Java环境 13

2.2.1 下载JDK 13

2.2.2 安装JDK 15

2.2.3 配置环境变量 15

2.3 下载解压Eclipse 17

2.3.1 下载Eclipse 17

2.3.2 解压Eclipse 17

2.4 下载MyEclipse插件 18

2.4.1 下载MyEclipse插件 18

2.4.2 安装MyEclipse插件 19

2.4.3 启动MyEclipse 19

2.5 下载Tomcat服务器 20

2.5.1 下载Tomcat 20

2.5.2 解压配置Tomcat 21

2.5.3 设置端口号 22

2.5.4 设置临时域名 22

2.5.5 设置虚拟主机 23

2.6 第一个Java Web程序 24

2.6.1 新建Java Web项目 24

2.6.2 新建Servlet 25

2.7 部署到Tomcat 27

2.7.1 手工部署 27

2.7.2 MyEclipse自动部署 28

2.7.3 导出为WAR包 29

2.7.4 在MyEclipse中启动Tomcat 30

2.7.5 调试程序debug模式 31

2.8 本章小结 34

第2篇 基础篇 36

第3章 深入Servlet技术 36

3.1 HTTP协议 36

3.1.1 HTTP协议简介 36

3.1.2 Telnet演示HTTP协议 36

3.1.3 GET方式查询 37

3.1.4 HTTP头数据 38

3.1.5 POST方式提交数据 38

3.1.6 其他访问方式 38

3.2 Servlet概述 39

3.2.1 Servlet工作流程 39

3.2.2 Servlet接口 39

3.2.3 Java Web目录结构 40

3.3 编写Servlet 41

3.3.1 实现Servlet 41

3.3.2 配置<servlet> 43

3.3.3 配置<servlet-mapping> 44

3.3.4 部署Web程序 44

3.4 请求与响应 45

3.4.1 获取request的变量 45

3.4.2 response生成图片验证码 48

3.5 读取web.xml参数 51

3.5.1 初始化参数(init-param) 52

3.5.2 上下文参数(context-param) 54

3.5.3 资源注射(@Resource) 57

3.5.4 使用JNDI获取资源 59

3.5.5 注射数据源 59

3.6 提交表单信息 59

3.6.1 GET实现搜索引擎 60

3.6.2 POST提交个人信息 64

3.6.3 上传文件客户端 69

3.6.4 上传文件服务器端 70

3.7 带进度条的文件上传 72

3.7.1 工作原理 73

3.7.2 上传进度条 73

3.7.3 上传监听器 74

3.7.4 监听上传进度 75

3.7.5 读取上传进度 76

3.7.6 显示上传进度 77

3.8 Servlet生命周期 81

3.8.1 Servlet生命周期 81

3.8.2 个税计算器 82

3.8.3 注解@PostConstruct与注解@PreDestroy 85

3.9 Servlet之间的跳转 86

3.9.1 转向(Forward) 87

3.9.2 重定向(Redirect) 89

3.9.3 自动刷新(Refresh) 91

3.10 Servlet与线程安全 92

3.10.1 一个实例 92

3.10.2 线程不安全 93

3.11 本章小结 94

第4章 深入JSP技术 95

4.1 JSP简介 95

4.1.1 JSP概述 95

4.1.2 显示问候语 95

4.1.3 JSP工作原理 97

4.1.4 JSP生命周期 98

4.2 JSP语法 98

4.2.1 JSP元素与模板数据 98

4.2.2 JSP脚本 99

4.2.3 JSP输出 99

4.2.4 JSP注释 100

4.2.5 JSP方法:查询IP地址 100

4.2.6 JSP的if语句 102

4.2.7 JSP的for循环 104

4.2.8 while循环:显示邮件列表 105

4.2.9 JSP的return语句 106

4.2.10 JSP的break语句 107

4.3 JSP指令 108

4.3.1 page指令 109

4.3.2 include指令 110

4.3.3 taglib指令 113

4.4 JSP行为 113

4.4.1 <jsp:include/>行为 113

4.4.2 使用Java Bean(POJO) 114

4.4.3 scope实现各种计数器 117

4.4.4 <jsp:plugin/>嵌入Applet 119

4.4.5 <jsp:forward/>行为 122

4.4.6 <jsp:directive/>行为 123

4.5 JSP隐藏对象 123

4.5.1 out输出流对象 123

4.5.2 request请求对象 124

4.5.3 response响应对象 124

4.5.4 config配置对象 125

4.5.5 session会话对象 125

4.5.6 application应用程序对象 126

4.5.7 page页面对象 126

4.5.8 pageContext页面上下文对象 126

4.5.9 exception异常对象 127

4.6 JSP配置 128

4.6.1 JSP配置 128

4.6.2 <jsp-config>标签 128

4.7 EL表达式 129

4.7.1 EL表达式 129

4.7.2 隐藏对象 130

4.7.3 EL表达式运算 131

4.8 本章小结 133

第5章 会话跟踪 134

5.1 Cookie机制 134

5.1.1 什么是Cookie 134

5.1.2 记录用户访问次数 135

5.1.3 Cookie的不可跨域名性 138

5.1.4 Unicode编码:保存中文 139

5.1.5 BASE64编码:保存二进制图片 140

5.1.6 设置Cookie的所有属性 142

5.1.7 Cookie的有效期 144

5.1.8 Cookie的修改、删除 145

5.1.9 Cookie的域名 145

5.1.10 Cookie的路径 146

5.1.11 Cookie的安全属性 146

5.1.12 JavaScript操作Cookie 147

5.1.13 案例:永久登录 149

5.2 Session机制 152

5.2.1 什么是Session 152

5.2.2 实现用户登录 153

5.2.3 Session的生命周期 155

5.2.4 Session的有效期 155

5.2.5 Session的常用方法 156

5.2.6 Session对浏览器的要求 156

5.2.7 URL地址重写 157

5.2.8 Session中禁止使用Cookie 158

5.3 Session与Cookie的比较 158

5.3.1 从存取方式上比较 159

5.3.2 从隐私安全上比较 159

5.3.3 从有效期上比较 159

5.3.4 从对服务器的负担上比较 159

5.3.5 从浏览器支持上比较 160

5.3.6 从跨域名上比较 160

5.4 本章小结 160

第6章 过滤器Filter 161

6.1 Filter概述 161

6.1.1 Filter概述 161

6.1.2 Filter接口 162

6.1.3 Filter配置 163

6.2 Filter经典案例 164

6.2.1 防盗链Filter 164

6.2.2 字符编码Filter 165

6.2.3 日志记录Filter 167

6.2.4 异常捕捉Filter 169

6.2.5 权限验证Filter 172

6.2.6 内容替换Filter 174

6.2.7 GZIP压缩Filter 177

6.2.8 图像水印Filter 182

6.2.9 缓存Filter 186

6.2.10 XSLT转换Filter 191

6.2.11 文件上传Filter 194

6.3 本章小结 197

第7章 监听器Listener 198

7.1 Listener概述 198

7.1.1 Listener的概述 198

7.1.2 Listener的使用 198

7.2 Listener的分类 199

7.2.1 监听对象的创建与销毁 199

7.2.2 实例:监听Session、request与servletContext 200

7.2.3 监听对象的属性变化 201

7.2.4 监听Session内的对象 203

7.3 Listener使用案例 205

7.3.1 单态登录 205

7.3.2 显示在线用户 209

7.4 本章小结 214

第3篇 高级篇 216

第8章 JSTL标签库 216

8.1 JSTL概述 216

8.1.1 什么是标签 216

8.1.2 一个标签实例 216

8.1.3 为什么使用标签 217

8.1.4 JSTL标签库 218

8.2 JSTL的core标签库 218

8.2.1 <c:out/>标签 218

8.2.2 <c:if/>标签 219

8.2.3 <c:choose/>、<c:when/>、<c:otherwise/>标签 220

8.2.4 <c:forEach/>显示偶数 221

8.2.5 <c:forEach/>标签遍历List 222

8.2.6 <c:forEach/>标签遍历Map对象 223

8.2.7 <c:forEach/>标签的varStatus属性 224

8.2.8 <c:forTokens/>标签 225

8.2.9 <c:set/>实现计数器 226

8.2.10 <c:remove/>标签 228

8.2.11 <c:catch/>捕捉异常 228

8.2.12 <c:import/>导入网络资源 228

8.2.13 <c:url/>标签 230

8.2.14 <c:redirect/>标签 231

8.2.15 <c:param/>标签 231

8.3 JSTL的fmt标签库 231

8.3.1 <frnt:requestEncoding/>设置编码 232

8.3.2 <fmt:setLocale/>显示所有地区的数据格式 232

8.3.3 <fmt:timeZone/>显示全球时间 234

8.3.4 <fmt:setTimeZone/>设置时区 236

8.3.5 <fmt:bundle/>、<fmt:message/>、<fmt:param/>资源国际化 236

8.3.6 <fmt:setBundle/>标签 238

8.3.7 <fmt:formatNumber/>显示不同地区的各种数据格式 238

8.3.8 <fmt:parseNumber/>解析数字 240

8.3.9 <fmt:formatDate/>格式化日期 241

8.3.10 <fmt:parseDate/>解析日期 241

8.4 JSTL的向方法库 242

8.4.1 fn:contains()显示用户浏览器、操作系统 242

8.4.2 fn:containsIgnoreCase()方法 243

8.4.3 fn:endsWith()显示文件格式 243

8.4.4 fn:startsWith()方法 244

8.4.5 fn:escapeXml()实现HTML编码 245

8.4.6 fn:indexOf()方法 245

8.4.7 fn:split()分割字符 246

8.4.8 fn:join()联合字符 247

8.4.9 fn:length()方法 247

8.5 JSTL的SQL标签库 248

8.5.1 <sql:setDataSource/>设置数据源 248

8.5.2 <sql:query/>查询表数据 249

8.5.3 <sql:query/>分页显示 250

8.5.4 <sql:query/>结果集的动态遍历 251

8.5.5 <sql:update/>更新表数据 253

8.5.6 <sql:param/>,<sql:dateParam/>设置日期参数 254

8.5.7 <sql:transaction/>事务管理 255

8.6 JSTL的XML标签库 257

8.6.1 <x:parse/>获取新浪RSS新闻 257

8.6.2 <x:out/>输出指定元素 259

8.6.3 <x:forEach/>遍历新浪RSS新闻 260

8.6.4 <x:if/>标签 261

8.6.5 <x:choose/>、<x:when/>、<x:otherwise/>标签 261

8.6.6 <x:set/>标签 262

8.6.7 <x:transform/>转化XML为HTML 262

8.7 本章小结 264

第9章 自定义标签 265

9.1 编写自定义标签 265

9.1.1 版权标签 265

9.1.2 tld标签库描述文件 267

9.1.3 方法的调用顺序 268

9.1.4 使用TagSupport 269

9.1.5 带参数的标签 270

9.1.6 带多个参数的标签 271

9.1.7 带标签体的自定义标签 272

9.1.8 多次执行的循环标签 274

9.1.9 带动态属性的自定义标签 276

9.2 嵌套的自定义标签 277

9.2.1 实例:表格标签 277

9.2.2 嵌套标签的配置 278

9.2.3 table父标签 279

9.2.4 column子标签 281

9.2.5 运行效果 282

9.3 JSP 2.x标签 282

9.3.1 SimpleTag接口 282

9.3.2 带标签体的JSP 2.x标签 283

9.3.3 带多个标签体的JSP 2.x标签 285

9.4 编写自定义方法 287

9.4.1 自定义方法 287

9.4.2 方法描述文件 288

9.5 本章小结 290

第10章 资源国际化 291

10.1 资源国际化简介 291

10.1.1 I18N 291

10.1.2 I10N 291

10.2 资源国际化 291

10.2.1 资源国际化示例 292

10.2.2 资源文件编码 292

10.2.3 显示所有Locale代码 294

10.2.4 带参数的资源 297

10.2.5 ResourceBundle类 297

10.2.6 Servlet的资源国际化 298

10.2.7 显示所有Locale的数字格式 298

10.2.8 显示全球时间 301

10.3 本章小结 302

第11章 数据库概述 303

11.1 数据库简介 303

11.1.1 发展历史 303

11.1.2 数据库模型 304

11.1.3 SQL、DDL与DML 304

11.2 MySQL数据库 305

11.2.1 MySQL安装与配置 305

11.2.2 MySQL启动与关闭 305

11.2.3 bin目录下的程序 306

11.2.4 登录MySQL 306

11.2.5 MySQL控制台 307

11.2.6 控制台信息 307

11.3 DDL SQL语句 309

11.3.1 列出数据库模式 309

11.3.2 切换数据库模式 309

11.3.3 列出数据表 310

11.3.4 查看表结构 310

11.3.5 创建数据库模式 310

11.3.6 删除数据库模式 311

11.3.7 修改数据库模式 311

11.3.8 创建表 311

11.3.9 删除表 312

11.3.10 修改表 312

11.4 DML SQL语句 313

11.4.1 插入数据 313

11.4.2 查询数据 313

11.4.3 删除数据 314

11.4.4 修改数据 314

11.4.5 创建,删除,授权用户 315

11.4.6 批量执行SQL语句 315

11.5 MySQL客户端工具 316

11.5.1 MySQL图形界面工具 316

11.5.2 MyEclipse管理工具 318

11.6 Apache Derby 319

11.6.1 Derby概述 319

11.6.2 Derby的使用 320

11.6.3 使用嵌入式Derby记录日志 320

11.7 本章小结 322

第12章 JDBC详解 323

12.1 JDBC简介 323

12.1.1 查询实例:列出人员信息 323

12.1.2 各种数据库的连接 326

12.2 MySQL的乱码解决 327

12.2.1 MySQL的乱码解决 327

12.2.2 从控制台修改编码 327

12.2.3 从配置文件修改编码 328

12.2.4 利用图形界面工具修改 328

12.2.5 URL中指定编码方式 329

12.3 JDBC基本操作:CRUD 329

12.3.1 查询数据库 329

12.3.2 插入人员信息 329

12.3.3 注册数据库驱动 331

12.3.4 获取自动插入的ID 332

12.3.5 删除人员信息 333

12.3.6 修改人员数据 334

12.3.7 使用PreparedStatement 340

12.3.8 Statement批处理SQL 341

12.3.9 PreparedStament批处理SQL 342

12.4 处理结果集 344

12.4.1 查询多个结果集 344

12.4.2 可以滚动的结果集 344

12.4.3 Pagination分页显示 344

12.4.4 带条件的查询 350

12.4.5 ResultSetMetaData元数据 354

12.4.6 直接显示中文列名 355

12.5 JDBC高级应用 356

12.5.1 DAO模式与Java Bean 356

12.5.2 事务实例:转账 362

12.5.3 抛出异常自动回滚 364

12.5.4 存储二进制数据 365

12.5.5 读取二进制数据 368

12.5.6 数据源(连接池) 369

12.6 本章小结 371

第13章 XML概述 372

13.1 初识XML 372

13.1.1 什么是XML 372

13.1.2 XML的用途 373

13.1.3 XML的技术架构 374

13.1.4 XML开发工具 375

13.2 XML基本语法 375

13.2.1 XML文档的基本结构 375

13.2.2 标记必须闭合 376

13.2.3 必须合理地嵌套 376

13.2.4 XML元素 377

13.2.5 XML属性 377

13.2.6 只有一个根元素 378

13.2.7 大小写敏感 378

13.2.8 空白被保留 378

13.2.9 注释的写法 379

13.2.10 转义字符的使用 379

13.2.11 CDATA的使用 379

13.3 JDK中的XML API 380

13.4 XML解析模型 380

13.4.1 DOM解析 380

13.4.2 SAX解析 383

13.5 XML与Java类映射JAXB 385

13.5.1 什么是XML与Java类映射 385

13.5.2 JAXB的工作原理 386

13.5.3 Java对象转化成XML(marshal) 387

13.5.4 XML转化为Java对象(unmarshal) 389

13.5.5 更为复杂的映射 390

13.6 本章小结 392

第4篇 Struts框架篇第14章 Struts 1.x概述 394

14.1 Straats简介 394

14.1.1 Struts概述 394

14.1.2 MVC概述 395

14.2 第一个Struts 1.x实例 395

14.2.1 添加Struts特性 395

14.2.2 创建HelloAction 397

14.2.3 完成HelloAction 400

14.2.4 添加输入页JSP 400

14.2.5 添加输出页 402

14.3 Struts工作流程 403

14.4 Struts配置文件 404

14.4.1 Struts配置文件详解 404

14.4.2 多个struts-config.xml 405

14.4.3 配置命名空间 406

14.5 Form Bean实例:提交用户信息 406

14.5.1 用户信息对应的Form Bean 406

14.5.2 用户信息输入页面 407

14.5.3 用户信息校验 409

14.5.4 Form Bean中使用Person实体类 411

14.6 Action的配置 412

14.6.1 Action与ActionForward配置 412

14.6.2 把JSP配置为Action 413

14.7 Action实例:保存用户信息到数据库 414

14.7.1 在struts-config.xml中配置数据源 414

14.7.2 Person类代码 415

14.7.3 数据表设计 416

14.7.4 Action代码:保存用户信息 416

14.7.5 Form Bean代码:用户信息表单 418

14.7.6 Action代码:列出用户信息 418

14.7.7 DAO层代码:保存、列出用户信息 419

14.7.8 JSP代码:添加、列出用户信息 421

14.8 Struts 1.x的线程安全 423

14.8.1 Action是线程不安全的 424

14.8.2 Form Bean是线程安全的 424

14.9 本章小结 424

第15章 Struts 1.x高级应用 425

15.1 Struts 1.x标签库 425

15.1.1 html标签库 425

15.1.2 bean标签库 428

15.1.3 logic标签库 429

15.1.4 nested标签库 430

15.1.5 tiles标签库 433

15.2 DispatchAction 438

15.2.1 利用action参数分发 438

15.2.2 DispatchAction 438

15.2.3 配置DispatchAction 439

15.3 上传文件 439

15.3.1 FormFile类型 439

15.3.2 保存FormFile 440

15.4 Validator自动校验数据 442

15.4.1 支持自动校验的ValidatorForm 442

15.4.2 Validate规则配置 442

15.4.3 错误信息配置 443

15.4.4 配置到struts-config.xml中 444

15.4.5 配置客户端JavaScript校验 444

15.5 动态属性Form Bean 445

15.5.1 动态属性表单DynaActionForm 445

15.5.2 Action中获取动态属性 446

15.5.3 JSP中使用动态属性 446

15.6 异常处理 447

15.6.1 异常捕捉ExceptionHandler 447

15.6.2 配置ExceptionHandler 447

15.7 struts-config.xml中使用通配符 448

15.8 本章小结 448

第16章 Struts 2.x概述 450

16.1 Struts 2.x简介 450

16.1.1 Struts 2简介 450

16.1.2 Struts 2与WebWork 2的关系 450

16.2 第一个Struts 2实例 451

16.2.1 下载Struts 2类库 451

16.2.2 登录功能Action 451

16.2.3 Struts 2配置文件 452

16.2.4 JSP登录页面 453

16.2.5 配置web.xml 454

16.2.6 更改action后缀 455

16.3 Struts 2工作流程 455

16.3.1 Struts 2工作流程 456

16.3.2 Struts 2的线程安全 456

16.3.3 程序入口FilterDispatcher 456

16.4 Struts 2配置文件 457

16.4.1 struts.properties 457

16.4.2 struts.xml 457

16.4.3 配置package 458

16.4.4 配置命名空间 458

16.5 Action详解 459

16.5.1 AcfionSupport类 459

16.5.2 Action接口 459

16.5.3 不继承任何类的Action 460

16.5.4 Action的可执行方法 460

16.5.5 通过URL执行Action的方法 461

16.5.6 将执行方法配置到Action 461

16.6 Struts 2的零配置 462

16.6.1 通过@注解实现Action零配置 462

16.6.2 web.xml中指定Action目录 463

16.6.3 零配置的Action访问方式 463

16.7 Action中使用POJO 464

16.7.1 图书管理Action 464

16.7.2 图书实体Book类 465

16.7.3 通配符配置Action 465

16.7.4 JSP添加、列表页面 466

16.8 本章小结 467

第17章 Struts 2.x高级应用 469

17.1 数据类型转换器 469

17.1.1 实例:日期转换器 469

17.1.2 配置转换器 470

17.1.3 Action代码示例 471

17.1.4 为Action配置转换器 472

17.2 获取request、response 473

17.2.1 利用ServletActionContext的静态方法 473

17.2.2 利用相关的Aware接口 474

17.3 使用Validator校验数据 475

17.3.1 使用XML配置数据校验Validator 475

17.3.2 配置客户端Validator 476

17.3.3 常用的Validator 477

17.3.4 使用@Java注解配置Validator 477

17.4 本章小结 478

第18章 Struts 2.x标签 479

18.1 Struts 2.x标签 479

18.1.1 Struts 2标签与EL表达式 479

18.1.2 Struts 2标签tld文件 479

18.2 OGNL语言 479

18.2.1 OGNL概述 479

18.2.2 “#”声明OGNL表达式 480

18.2.3 “%”显式声明OGNL表达式 483

18.2.4 “$”在资源文件中引用OGNL表达式 483

18.3 控制标签 483

18.3.1 if、elseif、else标签控制流程 483

18.3.2 append标签连接多个List 485

18.3.3 generator标签将字符转化为List 486

18.3.4 iterator标签遍历集合 486

18.3.5 merge标签取集合的并集 487

18.3.6 subset标签过滤集合元素 487

18.4 数据标签 488

18.4.1 action标签包含action页面 489

18.4.2 bean标签引用Java Bean 489

18.4.3 date标签输出日期 489

18.4.4 i18n、text标签声明资源国际化 490

18.4.5 include标签包含JSP页面 491

18.4.6 param标签传递参数 491

18.4.7 set标签设置变量值 491

18.4.8 property标签输出变量值 492

18.5 表单UI标签 492

18.5.1 form标签输出表单 492

18.5.2 textfield、textarea、file、checkbox、radio标签 493

18.5.3 select、autocomplete标签下拉框 494

18.5.4 使用动态数据的autocomplete标签 495

18.5.5 checkboxlist标签多选框组 497

18.5.6 combobox标签复合框 498

18.5.7 datetimepicker标签日期选择器 498

18.5.8 doubleselect标签联动选择框 499

18.5.9 optiontransferselect标签 500

18.5.10 optgroup标签选项组 502

18.6 非表单UI标签 503

18.6.1 debug标签输出调试信息 503

18.6.2 fielderror、actionerror、actionmessage标签错误信息 504

18.6.3 div、submit、a标签实现无刷新获取数据 505

18.6.4 无刷新实现登录、注销 508

18.6.5 tabbedPanel标签页 510

18.6.6 tree标签输出树 512

18.6.7 使用tree显示文件结构 513

18.6.8 使用tree动态加载数据 515

18.7 本章小结 517

第19章 Struts 2.x拦截器与文件上传 519

19.1 使用拦截器 519

19.1.1 timer计时拦截器 519

19.1.2 token防重复提交拦截器 520

19.1.3 execAndWait执行等待拦截器 522

19.1.4 自定义的权限验证拦截器 524

19.2 上传文件 525

19.2.1 上传文件的Action 525

19.2.2 上传文件的JSP表单 527

19.2.3 上传文件相关的设置 528

19.2.4 错误信息设置 529

19.2.5 上传多个文件 529

19.3 本章小结 530

第5篇 Hibernate框架篇第20章 Hibernate入门 532

20.1 Hibernate简介 532

20.1.1 ORM概述 532

20.1.2 认识Hibernate 532

20.1.3 Hibernate的原理 533

20.2 第一个Hibernate程序 533

20.2.1 添加Hibernate特性 533

20.2.2 添加Hibernate的Jar 535

20.2.3 配置Cat实体类 535

20.2.4 修改Hibernate配置文件 536

20.2.5 修改Hibernate工具类 537

20.2.6 初始化MySQL数据库 538

20.2.7 配置Log4J 538

20.2.8 执行Hibernate程序 539

20.3 第一个Hibernate Web程序 541

20.3.1 DAO层代码 541

20.3.2 Servlet层代码 543

20.3.3 列出所有的Cat 544

20.3.4 添加Cat 546

20.3.5 修改Cat 548

20.3.6 删除Cat 549

20.4 本章小结 550

第21章 从宏观上把握Hibernate 551

21.1 Hibernate体系结构 551

21.2 Hibernate的相关概念 551

21.3 可持久化对象的状态 552

21.4 Hibernate配置参数 552

21.4.1 配置文件hibernate.properties、hibernate.cfg.xml 552

21.4.2 编程式配置、运行时配置 553

21.4.3 获取SessionFactory 554

21.4.4 获取、断开数据库连接 554

21.4.5 可选的配置参数 555

21.4.6 Hibernate日志 557

21.5 本章小结 558

第22章 Hibernate实体映射 559

22.1 实体类映射 559

22.1.1 @注解配置 559

22.1.2 XML文件配置 560

22.1.3 配置到hibernate.cfg.xml中 561

22.2 主键映射 561

22.2.1 @配置主键 561

22.2.2 XML配置主键 562

22.3 主键生成规则 562

22.3.1 @主键生成规则 562

22.3.2 XML主键生成规则 563

22.4 普通属性映射 564

22.4.1 @配置普通属性 564

22.4.2 XML配置普通属性 565

22.5 日期属性配置 565

22.5.1 @配置日期属性 565

22.5.2 XML配置日期属性 566

22.6 临时属性映射 566

22.7 版本属性配置 566

22.7.1 乐观锁与悲观锁 566

22.7.2 @配置乐观锁 567

22.7.3 XML配置乐观锁 567

22.8 本章小结 567

第23章 Hibernate实体关系映射 568

23.1 单边的一对多关系:电子邮件管理 568

23.1.1 UML、数据库关系 568

23.1.2 @配置Person2类 568

23.1.3 @配置Email类 569

23.1.4 配置到Hibernate.cfg.xml中 570

23.1.5 运行代码 570

23.1.6 延迟加载与即时加载 572

23.1.7 延迟加载异常 572

23.1.8 XML配置Person类 574

23.1.9 XML配置Email类 575

23.1.10 加载XML配置的实体 575

23.1.11 配置String类型的实体 576

23.2 单边的多对一关系:论文管理 578

23.2.1 UML、数据库关系 578

23.2.2 @配置Type类 578

23.2.3 @配置Article类 579

23.2.4 配置到Hibernate.cfg.xml 579

23.2.5 运行代码 580

23.2.6 XML配置Type类 581

23.2.7 XML配置Article类 581

23.3 双边的多对一、一对多关系:学生属性 582

23.3.1 UML、数据库关系 582

23.3.2 @配置Clazz类 583

23.3.3 @配置Student类 584

23.3.4 配置到Hibernate.cfg.xml 584

23.3.5 运行代码 585

23.3.6 XML配置Clazz类 586

23.3.7 XML配置Student类 587

23.4 单边的多对多关系:论坛文章管理 588

23.4.1 UML、数据库关系 588

23.4.2 @配置Tag类 588

23.4.3 @配置Post类 589

23.4.4 运行代码 590

23.4.5 XML配置Tag类 592

23.4.6 XML配置Post类 592

23.5 双边的多对多关系 593

23.5.1 @配置Tag类 593

23.5.2 XML配置Tag类 593

23.6 单边的一对一关系:舰船管理 594

23.6.1 UML、数据库关系 594

23.6.2 @配置Ship类 594

23.6.3 @配置Sailor类 595

23.6.4 运行代码 596

23.6.5 XML配置Ship类 597

23.6.6 XML配置Sailor类 598

23.7 双边的一对一关系 598

23.7.1 @配置Ship类 599

23.7.2 XML配置Ship类 599

23.8 主键相同的一对一关系:客户地址管理 599

23.8.1 UML、数据库关系 599

23.8.2 @配置Customer类 600

23.8.3 @配置Address类 600

23.8.4 运行代码 601

23.8.5 XML配置Customer类 603

23.8.6 XML配置Address类 603

23.9 Map映射 604

23.9.1 @MapKey配置Map 604

23.9.2 XML配置Map 604

23.10 本章小结 605

第24章 Hibernate查询语言HQL 606

24.1 HQL基础查询 606

24.1.1 HQL语法 606

24.1.2 HQL大小写不敏感 606

24.1.3 使用Package名 606

24.2 返回类型 607

24.2.1 查询单个的对象 607

24.2.2 返回集合属性 607

24.3 同时返回多个对象 608

24.3.1 返回Obiect口数组 608

24.3.2 返回List类型 608

24.3.3 返回Map类型 608

24.3.4 返回Java实体对象 609

24.4 条件查询 609

24.4.1 where子句语法 609

24.4.2 HQL支持的运算符 609

24.5 统计函数 610

24.6 HQL分页显示 611

24.7 HQL级联查询 611

24.7.1 跨表查询 611

24.7.2 级联查询 611

24.8 使用SQL数据库 612

24.8.1 使用SQLQuery 612

24.8.2 返回实体类型 612

24.9 命名常用的查询 612

24.9.1 @配置命名查询 613

24.9.2 设置查询扩展 613

24.9.3 设置多个命名查询 613

24.9.4 XML配置命名查询 614

24.10 本章小结 615

第25章 Hibernate高级查询 616

25.1 单一实体类的查询 616

25.1.1 员工实体类Employee查询 616

25.1.2 员工管理EmployeeServlet 619

25.1.3 查询员工的JSP代码 621

25.1.4 JSP显示页面 624

25.1.5 使用参数查询 626

25.2 实体间关系的查询 627

25.2.1 部门实体类Department类 628

25.2.2 部门管理DepartmentServlet 629

25.2.3 显示部门的JSP代码 631

25.2.4 添加部门代码(Ajax方式查询经理) 633

25.2.5 修改员工时选择部门 638

25.3 ioin级联查询 642

25.3.1 SQL中的join 643

25.3.2 Hibernate中的join 645

25.4 本章小结 648

第6篇 Spring框架篇第26章 Spring概述 650

26.1 Spring框架 650

26.1.1 Spring背景 650

26.1.2 Spring容器 650

26.2 一个依赖注入的例子 650

26.2.1 一个普通程序的例子 651

26.2.2 Dao接口及实现 652

26.2.3 Service接口及实现 652

26.2.4 组装DAO与Service 653

26.2.5 运行代码 654

26.2.6 反向控制的原理 654

26.2.7 面向切面编程的原理 654

26.3 一个切面编程的例子 655

26.3.1 实现拦截器接口 655

26.3.2 AOP配置拦截器 655

26.3.3 运行代码 656

26.4 Spring框架的组成 657

26.5 本章小结 658

第27章 Spring的Core模块 659

27.1 BeanFactory工厂 659

27.1.1 实例化BeanFactory 659

27.1.2 XmlBeanFactory配置格式 660

27.2 配置Java Bean 660

27.2.1 基本配置<bean> 660

27.2.2 工厂模式factory-method 661

27.2.3 构造函数<constructor-arg> 661

27.2.4 单态模式singleton 662

27.2.5 配置属性<property> 662

27.2.6 设置对象属性<ref> 663

27.2.7 配置List属性<list> 663

27.2.8 配置Set属性<set> 664

27.2.9 配置Map属性<map> 664

27.2.10 配置Properties属性<props> 664

27.2.11 <idref>与<ref>的区别 665

27.2.12 设置destroy-method销毁方法 665

27.2.13 设置depends-on依赖对象 665

27.2.14 初始化方法init-method 665

27.3 属性自动装配autowire 666

27.3.1 配置autowire自动装配 666

27.3.2 autowire取值范围 666

27.4 依赖检查dependency 667

27.4.1 配置dependency依赖检查 667

27.4.2 dependency属性取值范围 667

27.5 Bean的高级特性 667

27.5.1 BeanNameAware接口获取Bean的id 668

27.5.2 BeanFactoryAware接口获取BeanFactory 668

27.5.3 InitializingBean接口执行初始化方法 668

27.5.4 DisposableBean接口执行销毁方法 669

27.6 BeanFactory高级特性 669

27.7 属性覆盖器 669

27.7.1 配置PropertyOverrideConfigurer属性覆盖器 669

27.7.2 properties配置 670

27.8 本章小结 670

第28章 Spring的AOP模块 671

28.1 实例:使用拦截器拦截方法 671

28.1.1 Service接口 671

28.1.2 Service实现代码 671

28.1.3 方法前拦截器检查name是否为null 672

28.1.4 返回后拦截器输出返回值 673

28.1.5 异常拦截器捕获异常 673

28.1.6 拦截器配置 674

28.1.7 运行代码 675

28.2 拦截器与Filter的区别 676

28.3 AOP的相关概念 676

28.4 AOP的代理模式 677

28.4.1 ProxyFactoryBean代理工厂对象 677

28.4.2 TransactionProxyFactoryBean事务代理工厂对象 677

28.5 本章小结 678

第29章 Spring的DAO模块 679

29.1 实例:保存Person实体 679

29.1.1 实体类Person代码 679

29.1.2 DAO层接口 679

29.1.3 继承JdbcDaoSupport 680

29.1.4 Spring配置 681

29.1.5 运行代码 682

29.2 返回实体对象 683

29.2.1 MappingSqlQuery实现代码 683

29.2.2 使用MappingSqlQuery 683

29.2.3 SqlUpdate执行更新 684

29.2.4 SqlFunction返回单一结果 684

29.3 Spring事务管理 685

29.3.1 TransactionRun代码 685

29.3.2 配置事务 686

29.3.3 运行代码 687

29.4 本章小结 687

第30章 Spring的ORM模块 688

30.1 实例:保存Cat实体 688

30.1.1 Cat实体类代码 688

30.1.2 DAO层接口 689

30.1.3 继承HibernateDaoSupport 689

30.2 配置集成Hibernate 690

30.2.1 在Spring中配置Hibernate 690

30.2.2 运行代码 691

30.2.3 配置XML文件实体 692

30.3 管理Hibernate事务 693

30.3.1 Service接口 693

30.3.2 Service实现代码 693

30.3.3 在Service层配置事务 694

30.4 本章小结 695

第31章 Spring的Web模块 696

31.1 整合Struts 1.x:继承方式 696

31.1.1 CatForm代码 696

31.1.2 CatAction添加、列出所有Cat 697

31.1.3 Struts配置文件 698

31.1.4 异常处理页面 699

31.1.5 添加、显示Cat页面 699

31.1.6 在web.xml中配置Spring、Struts 700

31.1.7 添加OpenSessionInViewerFilter 702

31.1.8 其他方式加载Spring配置 702

31.2 整合Struts 1.x:代理方式 703

31.2.1 Cat2Action添加、列出所有Cat 703

31.2.2 Struts配置文件 704

31.2.3 Spring配置文件 705

31.3 整合Struts 2.x 706

31.3.1 CatAction添加、列出所有Cat 706

31.3.2 在Struts 2配置文件中配置Spring 707

31.3.3 在Spring配置文件中配置Action 708

31.3.4 在web.xml配置中配置Spring、Struts 2 708

31.3.5 JSP代码 709

31.4 本章小结 710

第32章 Spring的MVC模块 711

32.1 MVC的控制层 711

32.1.1 MVC的控制层 711

32.1.2 Spring MVC的优缺点 712

32.2 MVC的视图层 712

32.3 MVC配置 713

32.4 web.xml配置 714

32.5 多业务分发器 715

32.5.1 MultiActionController分发控制器 715

32.5.2 配置分发参数 716

32.6 本章小结 717

第33章 Spring开发实例(SSH、SSJ) 718

33.1 实例一:访问统计系统(结合Struts 1、Hibernate) 718

33.1.1 访问记录 718

33.1.2 在线用户 719

33.1.3 工作原理 719

33.1.4 系统构架 721

33.2 服务器端统计代码 721

33.2.1 实体类代码 721

33.2.2 DAO层代码 723

33.2.3 DAO层配置 725

33.2.4 数据源的附加配置 727

33.2.5 Action代码 727

33.2.6 计算IP地址、搜索关键词 731

33.2.7 配置Spring到web.xml中 732

33.3 访问信息列表 733

33.3.1 访问信息列表 733

33.3.2 在线用户列表 736

33.4 实例二:邮件发送系统(结合Struts 2、JPA) 737

33.4.1 实体类代码 737

33.4.2 DAO层代码 738

33.4.3 JPA的配置文件 739

33.4.4 Spring的邮件发送器 740

33.4.5 发送简单文本邮件 741

34.4.6 Struts 2的配置文件 744

34.4.7 Spring的配置文件 744

34.4.8 web.xml配置文件 746

33.4.9 发送HTML邮件 747

33.4.10 已发送邮件列表 751

33.5 Spring定时任务 753

33.5.1 JDK中的定时任务 754

33.5.2 Spring中的定时任务 755

33.5.3 定时任务配置 757

33.5.4 定时器触发时间配置 758

33.6 小结 760

第7篇 EJB与Web服务篇第34章 EJB 3概述 762

34.1 EJB技术概述 762

34.1.1 什么是EJB 762

34.1.2 EJB类型 763

34.2 下载和安装JBoss服务器 763

34.2.1 下载JBoss 764

34.2.2 JBoss的目录结构 764

34.2.3 MyEclipse中配置JBoss 765

34.2.4 启动JBoss服务器 767

34.3 实例:HelloEJBService 767

34.3.1 新建EJB工程 767

34.3.2 定义EJB业务接口 768

34.3.3 编写SessionBean 768

34.3.4 EJB的部署 769

34.4 运行EJB 771

34.4.1 客户端调用EJB 771

34.4.2 Web应用调用EJB 773

34.5 EJB其他的相关技术规范 775

34.6 本章小结 775

第35章 JPA规范 776

35.1 JPA概述 776

35.1.1 JPA的出现 776

35.1.2 JPA规范 776

35.1.3 JPA与EJB 3 777

35.1.4 Java EE容器 777

35.2 实例:保存Student实体类 777

35.2.1 Student代码 777

35.2.2 StudentServlet添加、列出所有Student 778

35.2.3 persistence.xml代码 780

35.2.4 配置JBoss服务器 781

35.2.5 运行JPA程序 782

35.3 JPA的API 783

35.3.1 实体类配置 783

35.3.2 获取EntityManager 783

35.3.3 实体类的状态 784

35.3.4 持久化persist() 784

35.3.5 查找find()与getReference() 784

35.3.6 保存merge() 785

35.3.7 删除remove() 785

35.3.8 刷新refresh()和包含contains() 785

35.3.9 查询createQuery() 785

35.3.10 本地查询createNativeQueryO 786

35.3.11 写入数据库flush() 786

35.3.12 设定写入模式setFlushModel() 786

35.3.13 返回实现者getDelegate() 786

35.3.14 清除对象clear() 786

35.4 本章小结 787

第36章 Web Service框架XFire 788

36.1 XFire概述 788

36.1.1 什么是XFire 788

36.1.2 下载XFire 789

36.1.3 XFire的目录结构 789

36.2 XFire开发起步 790

36.2.1 配置Web服务项目 790

36.2.2 配置文件清单 791

36.2.3 开发一个Web服务 792

36.2.4 发布Web服务 794

36.3 Web服务客户端 796

36.3.1 MyEclipse客户端 796

36.3.2 SDK方式的客户端 797

36.3.3 根据WSDL生成的客户端 799

36.4 Web服务安全 800

36.4.1 SOAP Header中进行身份验证 800

36.4.2 WS-Security进行身份验证 803

36.4.3 用户名/密码方式 805

36.4.4 数字签名(Signature) 807

36.4.5 加密(Encryption) 810

36.5 XFire与Spring集成 812

36.5.1 配置Spfing Bean 812

36.5.2 配置XFire Servlet 812

36.5.3 配置Web服务Bean 813

36.5.4 配置各种Handler 814

36.6 本章小结 816

第8篇 工具篇 818

第37章 版本管理工具SVN 818

37.1 Subversion概述 818

37.1.1 什么是版本控制 818

37.1.2 什么是Subversion 818

37.1.3 Subversion的历史 819

37.1.4 Subversion的优势 819

37.1.5 Subversion的技术架构 820

37.2 下载和安装Subversion 821

37.2.1 Subversion的版本 822

37.2.2 下载Subversion 823

37.2.3 安装Subversion 823

37.3 配置Subversion服务器 824

37.3.1 创建资源库 825

37.3.2 设置访问用户 826

37.3.3 启动Subversion服务 828

37.3.4 Subversion的常用命令 829

37.4 使用Subversion客户端TortoiseSVN 829

37.4.1 下载和安装TortoiseSVN 829

37.4.2 浏览资源库 830

37.4.3 在资源库中增加文件夹 831

37.4.4 导入文件到资源库(import) 833

37.4.5 从资源库中迁出(checkout) 835

37.4.6 更新(update)——修改——提交(commit) 836

37.4.7 锁定(lock)——修改——提交——解锁 839

37.4.8 解决冲突的办法 839

37.4.9 查看修改日志 842

37.4.10 历史版本的比较 844

37.4.11 恢复到之前的版本 845

37.4.12 TortoiseSVN的配置 846

37.5 与Eclipse集成 846

37.5.1 下载和安装Subclipse 846

37.5.2 在Eclipse中新建资源库 848

37.5.3 将Eclipse项目与资源库中的文件同步 849

37.5.4 在Eclipse中使用的其他功能 850

37.6 本章小结 850

第38章 日志工具commons-logging与Log4J 851

38.1 日志概述 851

38.1.1 日志的原理 851

38.1.2 JDK 1.4的Logging 852

38.1.3 Log4i控件 853

38.1.4 commons-logging控件 854

38.2 Log4i控件 855

38.2.1 Log4j概述 856

38.2.2 Log4j的执行效率 856

38.2.3 优化日志代码 856

38.2.4 Log4j.properties配置文件 857

38.2.5 使用其他配置文件 857

38.2.6 Log4j.xml配置文件 858

38.3 日志记录器Logger 858

38.3.1 日志记录器Logger 858

38.3.2 Logger的配置 858

38.3.3 rootLogger配置 859

38.3.4 类别category配置 859

38.4 输出地Appender 859

38.4.1 输出到控制台 860

38.4.2 输出到文件 860

38.4.3 输出到按大小滚动文件 861

38.4.4 输出到按日期滚动文件 861

38.4.5 输出到JDBC数据库 862

38.4.6 输出到SOCKET套接字 864

38.4.7 输出到SMTP邮件 864

38.4.8 自定义输出 865

38.5 日志格式化器Layout 867

38.5.1 PatternLayout布局 867

38.5.2 HTMLLayout布局 868

38.5.3 XMLLayout布局 868

38.6 本章小结 870

第39章 报表图形引擎JFreeChart 871

39.1 JFreeChart简介 871

39.1.1 下载JFreeChart 871

39.1.2 核心类包介绍 872

39.2 图形的输出方式 872

39.2.1 在SerVlet生成图片 872

39.2.2 直接生成图片文件 876

39.3 输出柱形图 877

39.3.1 使用DefaultCategoryDataset数据集绘制柱形图 877

39.3.2 使用XYDataset数据集绘制柱形图 879

39.4 输出折线图 882

39.5 输出区域图 884

39.6 输出时序图 887

39.7 输出组合图表 889

39.8 其他种类的图形 892

39.9 本章小结 892

第40章 PDF组件iText 894

40.1 下载iText组件 894

40.2 输出pdf的基本步骤 895

40.3 设置pdf文件属性 896

40.4 插入文本 898

40.5 文本的中文处理 899

40.6 插入表格 899

40.7 插入图像 900

40.8 在Servlet中输出pdf 902

40.9 本章小结 903

第9篇 实战篇 906

第41章 论坛系统(Spring+Struts+Hibernate) 906

41.1 功能概述 906

41.1.1 功能模块 906

41.1.2 运行效果 906

41.2 数据库设计 907

41.2.1 实体类设计 907

41.2.2 BaseBean基类代码 908

41.2.3 Person类代码 908

41.2.4 Category类代码 909

41.2.5 Board类代码 909

41.2.6 Thread类代码 910

41.2.7 Reply类代码 911

41.2.8 数据库与Hibernate配置 912

41.3 DAO层设计 913

41.3.1 IDao代码 913

41.3.2 DaoImpl代码 913

41.4 Service层设计 914

41.4.1 IService接口 915

41.4.2 ServiceImpl实现 915

41.5 Action层设计 916

41.5.1 ForumForm基类 916

41.5.2 ForumAction基类 917

41.5.3 JSP层代码 918

41.6 用户模块 919

41.6.1 IPersonService接口 919

41.6.2 PersonServiceImpl实现 920

41.6.3 MD5加密工具类 921

41.6.4 PersonForm代码 921

41.6.5 PersonAction代码 922

41.6.6 JSP注册页面 925

41.6.7 PersonAction配置 926

41.6.8 登录拦截器 929

41.6.9 异常捕捉 930

41.6.10 实现用户登录 931

41.6.11 实现用户资料查看 933

41.7 类别模块 935

41.7.1 ICategoryService接口 935

41.7.2 CategoryServiceImpl实现 936

41.7.3 CategoryForm代码 936

41.7.4 实现浏览类别 937

41.7.5 实现添加类别 940

41.8 版面模块 941

41.8.1 IBoardService接口 942

41.8.2 BoardServiceImpl实现 942

41.8.3 BoardForm代码 942

41.8.4 实现浏览版面 943

41.8.5 实现添加版面 946

41.8.6 实现设置版主 949

41.9 帖子模块 951

41.9.1 IThreadService接口 951

41.9.2 ThreadServiceImpl实现 952

41.9.3 ThreadForm代码 952

41.9.4 实现浏览帖子 953

41.9.5 实现发表帖子 955

41.10 回帖模块 958

41.10.1 IReplyService接口 958

41.10.2 ReplyServiceImpl实现 959

41.10.3 ReplyForm代码 960

41.10.4 实现发表回帖 960

41.11 本章小结 963

第42章 分布式宠物商店(EJB 3+JPA+Struts 2) 964

42.1 系统概述 964

42.1.1 需求描述 964

42.1.2 系统预览 965

42.2 系统构架 966

42.2.1 系统构架图 966

42.2.2 实体类设计 967

42.2.3 业务类实现 969

42.2.4 Session Bean查找 978

42.2.5 persistence.xml配置 980

42.2.6 EJB 3组件部署 980

42.3 Web层的设计 982

42.3.1 Struts 2项目的文件说明 982

42.3.2 配置Struts 2 984

42.3.3 配置Tiles 985

42.3.4 使用Tiles 986

42.4 用户注册与登录 989

42.4.1 用户注册页面 989

42.4.2 注册处理Action 990

42.4.3 所有Action的父类BaseAction 992

42.4.4 登录页面 994

42.5 类别与宠物管理 995

42.5.1 宠物类别列表 995

42.5.2 添加宠物类别 999

42.5.3 添加宠物 1000

42.5.4 删除宠物分类和宠物 1003

42.6 购物车管理 1004

42.6.1 购买宠物 1004

42.6.2 查看购物车 1006

42.6.3 付款结账 1009

42.7 本章小结 1010