第1部分 准备篇 3
第1课 构建Eclipse集成开发环境 3
1.1 安装JDK并进行配置和测试 4
1.1.1 JDK的下载 4
1.1.2 JDK的安装 5
1.1.3 设置环境变量 8
1.1.4 测试Java环境 9
1.2 安装Tomcat并进行配置和测试 9
1.2.1 Tomcat的下载 10
1.2.2 Tomcat的安装 10
1.2.3 Tomcat的配置 11
1.2.4 测试Tomcat 11
1.2.5 配置一个站点并测试 12
1.3 安装Eclipse并进行配置 12
1.3.1 Eclipse简介 13
1.3.2 Eclipse版本与代号 14
1.3.3 Eclipse的下载 15
1.3.4 Eclipse的安装 19
1.3.5 Eclipse的启动 19
1.3.6 集成配置JDK 20
1.4 使用Eclipse进行Java Web项目的开发——实例演示HelloWorld项目开发过程 21
1.4.1 认识Eclipse工作区 22
1.4.2 新建Java Web项目demo 23
1.4.3 新建一个Java包test.hello&. 24
1.4.4 新建一个Java类HelloWorld.java 25
1.4.5 新建一个HTML页面index.htm 26
1.4.6 新建一个JSP页面helloworld.jsp 28
1.4.7 新建Tomcat服务器集成配置 29
1.4.8 运行项目查看结果 32
1.4.9 Tomcat的停止与重启 32
1.4.10 导出war部署包 32
1.4.11 打包eclipse.zip 33
1.5 本课小结 34
1.5.1 总结本课的知识点 34
1.5.2 要掌握的关键点 35
1.5.3 继续下一课:创建企业信息管理系统数据库 36
第2课 创建企业信息管理系统数据库 37
2.1 基本需求功能——登录、退出与注册 37
2.1.1 基础功能流程图 37
2.1.2 用户登录功能 38
2.1.3 用户退出功能 38
2.1.4 用户注册功能 38
2.2 业务需求功能——企业信息管理系统功能 38
2.2.1 通讯录管理模块 39
2.2.2 短消息管理模块 39
2.2.3 日程安排模块 39
2.2.4 工作记录模块 39
2.2.5 公司公告模块 39
2.2.6 工作会议模块 39
2.3 设计页面结构 40
2.3.1 登录界面 40
2.3.2 登录后的欢迎界面 41
2.3.3 注册界面 41
2.4 设计数据库 42
2.4.1 数据库需求分析 42
2.4.2 设计数据表E-R图 43
2.4.3 设计数据表结构 43
2.5 创建数据库 46
2.5.1 MySQL的下载、安装与启动 46
2.5.2 安装MySQL客户端软件SQL-Front 48
2.5.3 新建数据库demo 50
2.5.4 新建用户表user 50
2.5.5 添加一条用户数据 51
2.5.6 创建通讯录管理表address 52
2.5.7 创建短消息管理表sms 52
2.5.8 创建日程安排表schedule 52
2.5.9 创建工作记录表worklog 53
2.5.10 创建公司公告表notice&. 53
2.5.11 创建工作会议表meeting 53
2.5.12 打包emis07(SQL+MySQL).zip 54
2.6 本课小结 54
2.6.1 总结本课的知识点 55
2.6.2 继续下一部分:Java Web企业级开发技术EJB 56
第2部分 Java Web企业级开发技术EJB第3课 EJB快速入门 59
3.1 开始了解EJB 59
3.1.1 EJB基本概念 60
3.1.2 EJB基本特性 61
3.1.3 EJB体系结构 61
3.1.4 EJB组件的3种类型 62
3.1.5 EJB发展历史 63
3.1.6 EJB 3.0新特性 65
3.2 配置EJB运行环境——JBoss服务器 66
3.2.1 选择EJB应用服务器 66
3.2.2 JBoss组成及其软件家族 69
3.2.3 下载与安装JBoss 72
3.2.4 部署JBoss应用 75
3.2.5 启动JBoss服务器 75
3.2.6 测试JBoss服务 76
3.3 配置EJB集成开发环境——Eclipse+JBoss Tools插件 78
3.3.1 安装JBoss Tools插件 78
3.3.2 新建JBoss服务器 81
3.3.3 启动JBoss服务器 84
3.3.4 测试JBoss服务 85
3.4 EJB快速上手——HelloWorld入门实例 85
3.4.1 创建EJB项目——EJBTest 85
3.4.2 创建包——com.ejb 87
3.4.3 创建Session Bean组件——HelloWorld 88
3.4.4 添加欢迎函数——sayHello() 90
3.4.5 打包并部署到JBoss服务器 90
3.4.6 查看JBoss中的JNDI服务名 92
3.4.7 编写Java类进行测试——HelloWorldClient.java 94
3.4.8 编写JSP进行测试——helloworld.jsp 96
3.4.9 打包EJBTest.zip、EJBTestJava.zip和EJBTestJSP.zip 100
3.5 本课小结 100
3.5.1 总结本课的知识点 100
3.5.2 要掌握的关键点 101
3.5.3 课后上机作业 102
3.5.4 继续下一课:会话Bean(Session Bean)——发布JNDI服务 103
第4课 会话Bean(Session Bean)——发布JNDI服务 105
4.1 无状态会话Bean(Stateless Session Bean) 106
4.1.1 无状态会话Bean的3种类型 106
4.1.2 远程无状态会话Bean——Remote 106
4.1.3 本地无状态会话Bean——Local 110
4.1.4 远程和本地无状态会话Bean——Remote+Local 114
4.2 有状态会话Bean(Stateful Session Bean) 119
4.2.1 有状态会话Bean与无状态会话Bean的区别 119
4.2.2 有状态会话Bean的3种类型 120
4.2.3 远程有状态会话Bean——购物车实例 120
4.3 会话Bean扩展开发 125
4.3.1 控制会话Bean的生命周期 125
4.3.2 使用EJB拦截器 130
4.3.3 使用EJB依赖注入 133
4.3.4 使用EJB定时器 136
4.4 本课小结 139
4.4.1 总结本课的知识点 139
4.4.2 要掌握的关键点 140
4.4.3 课后上机作业 140
4.4.4 打包SessionBeanTest.zip 141
4.4.5 继续下一课:消息驱动Bean(Message-Driven Bean) 142
第5课 消息驱动Bean(Message-Driven Bean)——接收JMS消息 143
5.1 JMS与消息驱动Bean的工作原理 143
5.1.1 JMS消息的调用过程 143
5.1.2 JMS消息的两种类型:队列(Queue)与主题(Topic) 144
5.2 处理点对点消息——队列Queue 144
5.2.1 开发消息驱动Bean类——MDBQueue.java 145
5.2.2 配置并发布消息驱动Bean到JBoss服务器 147
5.2.3 开发消息客户端——MDBQueueClient.java 149
5.2.4 查看运行结果 152
5.3 处理发布/订阅消息——主题Topic 152
5.3.1 开发消息驱动Bean类——MDBTopic.java 152
5.3.2 配置并发布消息驱动Bean到JBoss服务器 155
5.3.3 开发消息客户端——MDBTopicClient.java 157
5.3.4 查看运行结果 159
5.4 本课小结 159
5.4.1 总结本课的知识点 159
5.4.2 要掌握的关键点 160
5.4.3 课后上机作业 160
5.4.4 打包MDBTest.zip 160
5.4.5 继续下一课:实体Bean(Entity Bean)——Java持久化JPA 161
第6课 实体Bean(Entity Bean)——Java持久化JPA 163
6.1 第一个实体Bean实例——建立与数据库的连接 164
6.1.1 实体Bean的工作原理 164
6.1.2 配置数据源 165
6.1.3 指定数据源——persistence.xml 166
6.1.4 开发第一个实体Bean——Student.java 167
6.1.5 开发会话Bean进行调用——StudentDAORemote.java和StudentDAO.java 170
6.1.6 打包并部署到JBoss服务器 172
6.1.7 开发客户端进行测试——StudentDAOClient.java 173
6.2 实例管理器EntityManager——执行数据库更新 175
6.2.1 EntityManager对象的引用方式 176
6.2.2 持久化实体persist()——往数据表中插入数据 177
6.2.3 按主键查询实体find()——从数据表中查询记录 177
6.2.4 删除实体remove()——从数据表中删除记录 178
6.2.5 更新实体merge()——更新数据表记录 178
6.2.6 刷新实体refresh()——从数据表中更新 179
6.2.7 刷新实体到数据库flush() 179
6.2.8 设置Flush刷新模式setFlushMode() 180
6.2.9 检测实体是否被管理contains() 180
6.2.10 分离管理的实体clear() 181
6.3 控制实体Bean的生命周期 181
6.3.1 实体Bean生命周期的4种状态 182
6.3.2 实体Bean生命周期的回调事件 182
6.3.3 外部回调——编写外部监听器 183
6.3.4 内部回调——编写内部监听函数 185
6.4 本课小结 187
6.4.1 总结本课的知识点 187
6.4.2 要掌握的关键点 188
6.4.3 课后上机作业及参考样例 189
6.4.4 打包EntityBeanTest.zip 192
6.4.5 继续下一课:实体关系映射(ORM) 192
第7课 实体关系映射(ORM) 193
7.1 单表映射——家庭信息实例 193
7.1.1 联合主键——使用@IdClass指定外部主键 194
7.1.2 联合主键——使用@EmbeddedId嵌入外部主键 199
7.2 一对一映射——省与省会城市关联实例 203
7.2.1 开发省份实体类Province.java 203
7.2.2 开发省会实体类City.java 205
7.2.3 开发远程接口类OneToOneDAORemote.java 207
7.2.4 开发实现类OneToOneDAO.java 207
7.2.5 开发测试客户端OneToOneDAOClient.java 208
7.2.6 查看运行结果 210
7.3 一对多与多对一映射——论坛主题与回帖关联实体 210
7.3.1 开发主题类Topic.java 211
7.3.2 开发回帖类Reply.java 212
7.3.3 开发远程接口类OneToManyDAORemote.java 214
7.3.4 开发实现类OneToManyDAO.java 214
7.3.5 开发测试客户端OneToManyDAOClient.java 215
7.3.6 查看运行结果 216
7.4 多对多映射——老师与课程关联实例 217
7.4.1 开发老师类Teacher.java 217
7.4.2 开发课程类Course.java 219
7.4.3 开发远程接口类ManyToManyDAORemote.java 221
7.4.4 开发实现类ManyToManyDAO.java 221
7.4.5 开发测试客户端类ManyToManyDAOClient.java 222
7.4.6 查看运行结果 223
7.5 本课小结 224
7.5.1 总结本课的知识点 224
7.5.2 要掌握的关键点 224
7.5.3 课后上机作业 225
7.5.4 打包ORMTest.zip 225
7.5.5 继续下一课:实体查询(JPQL和SQL查询) 226
第8课 实体查询(JPQL和SQL查询) 227
8.1 Query查询对象API 227
8.1.1 创建查询对象——createQuery() 228
8.1.2 SELECT语法 228
8.1.3 UPDATE语法 228
8.1.4 DELETE语法 228
8.1.5 设置查询参数——setParameter() 229
8.1.6 设置查询范围——setFirstResult()与setMaxResults() 229
8.1.7 单值查询——getSingleResult() 229
8.1.8 多行查询——getResultList() 230
8.1.9 执行更新——executeUpdate() 230
8.2 JPQL查询语言 230
8.2.1 查询对象的部分属性 231
8.2.2 设置复杂类型参数 231
8.2.3 设置排序条件 232
8.2.4 进行分页查询 232
8.2.5 进行分组查询 232
8.2.6 进行关联查询 232
8.2.7 进行子查询 233
8.2.8 使用聚合函数 233
8.2.9 使用操作符 234
8.2.10 使用字符串函数&. 235
8.2.11 使用计算函数 235
8.3 SQL语句查询 235
8.3.1 创建原生SQL查询对象——createNativeQuery() 236
8.3.2 设置查询参数 236
8.3.3 设置查询范围 236
8.3.4 取得查询结果 237
8.3.5 执行更新SQL 237
8.4 本课小结 237
8.4.1 总结本课的知识点 237
8.4.2 要掌握的关键点 238
8.4.3 课后上机作业 239
8.4.4 课后上机作业参考——JPQL开发实例 239
8.4.5 课后上机作业参考——SQL开发实例 245
8.4.6 打包JPQLTest.zip 250
8.4.7 继续下一课:企业信息管理系统服务器端——开发EJB+MySQL服务器端组件 251
第9课 企业信息管理系统服务器端——开发EJB+MySQL服务器端组件 253
9.1 用户管理组件 254
9.1.1 开发实体Bean类User.java 255
9.1.2 开发远程接口类UserService.java 256
9.1.3 开发实现类UserServiceImpl.java 256
9.1.4 开发测试类UserServiceClient.java 258
9.2 通讯录管理组件 259
9.2.1 开发实体Bean类Address.java 259
9.2.2 开发远程接口类AddressService.java 261
9.2.3 开发实现类AddressServiceImpl.java 262
9.2.4 分页组件Pager.java 264
9.3 短消息管理组件 266
9.3.1 开发实体Bean类Sms.java 266
9.3.2 开发远程接口类SmsService.java 268
9.3.3 开发实现类SmsServieeImpl.java 269
9.4 日程安排组件 271
9.4.1 开发实体Bean类Schedule.java 271
9.4.2 开发远程接口类ScheduleService.java 273
9.4.3 开发实现类ScheduleServiceImpl.java 273
9.5 工作记录组件 275
9.5.1 开发实体Bean类Worklog.java 276
9.5.2 开发远程接口类WorklogService.java 278
9.5.3 开发实现类WorklogServiceImpl.java 278
9.6 公司公告组件 280
9.6.1 开发实体Bean类Notice.java 280
9.6.2 开发远程接口类NoticeService.java 282
9.6.3 开发实现类NoticeServiceImpl.java 283
9.7 工作会议组件 285
9.7.1 开发实体Bean类Meeting.java 285
9.7.2 开发远程接口类MeetingService.java 287
9.7.3 开发实现类MeetingServiceImpl.java 287
9.8 本课小结 289
9.8.1 打包emis01(EJB+MySQL).zip 289
9.8.2 继续下一课:企业信息管理系统客户端——开发Struts 2+Spring+EJB架构系统 290
第10课 企业信息管理系统客户端——开发Struts 2+Spring+EJB架构系统 291
10.1 搭建系统架构——Struts 2+Spring+Sitemesh+EJB 292
10.1.1 配置Struts 2环境 292
10.1.2 配置Spring环境 293
10.1.3 搭建Sitemesh页面框架 293
10.1.4 配置EJB客户端环境 296
10.2 开发基础功能——登录、注销与注册 297
10.2.1 添加全局映射 297
10.2.2 开发登录页面login.jsp 297
10.2.3 开发并配置登录处理器LoginAction.java 299
10.2.4 开发欢迎页面welcome.jsp 302
10.2.5 开发并配置注销处理器LogoutAction.java 303
10.2.6 开发注册页面register.jsp 304
10.2.7 开发并配置注册处理器RegisterAction.java 306
10.2.8 开发Action基类BaseAction.java 309
10.3 通讯录管理模块 311
10.3.1 配置struts.xml映射 311
10.3.2 开发列表页面address.jsp 312
10.3.3 开发新增页面address add.jsp 314
10.3.4 开发修改页面address edit.jsp 316
10.3.5 新建分页类PageAction.java 317
10.3.6 开发处理类AddressAction.java 318
10.4 日程安排模块 325
10.4.1 配置struts.xml映射 325
10.4.2 开发列表页面schedule.jsp 326
10.4.3 开发新增页面schedule_add.jsp 328
10.4.4 开发修改页面schedule_edit.jsp 329
10.4.5 开发处理类ScheduleAction.java 331
10.5 工作日志模块 337
10.5.1 配置struts.xml映射 337
10.5.2 开发列表页面worklog.jsp 338
10.5.3 开发新增页面worklog_add.jsp 340
10.5.4 开发修改页面worklog_edit.jsp 342
10.5.5 开发处理类WorklogAction.java 343
10.6 短消息管理模块 349
10.6.1 配置struts.xml映射 350
10.6.2 开发列表页面sms.jsp 350
10.6.3 开发新增页面sms_add.jsp 352
10.6.4 开发处理类SmsAction.java 354
10.7 公司公告模块 358
10.7.1 配置struts.xml映射 359
10.7.2 开发列表页面notice.jsp 359
10.7.3 开发新增页面notice_add.jsp 361
10.7.4 开发修改页面notice_edit.jsp 363
10.7.5 开发处理类NoticeAction.java 364
10.8 工作会议模块 369
10.8.1 配置struts.xml映射 370
10.8.2 开发列表页面meeting.jsp 370
10.8.3 开发新增页面meeting_add.jsp 372
10.8.4 开发修改页面meeting_edit.jsp 374
10.8.5 开发处理类MeetingAction.java 376
10.9 添加权限检查拦截器 381
10.9.1 开发权限检查拦截器类AuthorizationInterceptor.java 382
10.9.2 配置权限检查拦截器 382
10.10 本课小结 383
10.10.1 打包emis02(Struts2+Spring+EJB).zip 383
10.10.2 继续下一部分:Java Web分布式技术 385
第3部分 Java Web分布式技术第11课 Java事务管理(JTA) 389
11.1 Java事务管理机制 389
11.1.1 JDBC事务管理机制 389
11.1.2 JTA事务管理机制 391
11.1.3 JTS事务服务 392
11.2 EJB事务管理机制 392
11.2.1 手工管理的事务——使用EntityTransaction对象 393
11.2.2 容器管理的事务——使用@TransactionAttribute注释符 393
11.3 企业信息管理系统——增加事务管理功能 396
11.3.1 开发异常处理类MyTransactionException.java 396
11.3.2 为Service接口添加抛出异常代码 397
11.3.3 为Service实现类添加事务和异常处理代码 398
11.3.4 打包emis03(EJB+MySQL+JTA).zip 401
11.4 本课小结 402
11.4.1 总结本课的知识点 402
11.4.2 要掌握的关键点 403
11.4.3 继续下一课:Java验证和授权服务(JAAS) 403
第12课 Java验证和授权服务(JAAS) 405
12.1 基于属性文件的JAAS安全验证 405
12.1.1 配置安全域——login-config.xml 406
12.1.2 配置用户和角色属性文件——users.properties并roles.properties 407
12.1.3 开发会话Bean组件——JAASBeanRemote.java知JAASBean.java 407
12.1.4 指定安全域——jboss.xml或@SecurityDomain注释 409
12.1.5 指定安全角色——@RolesAllowed和@PermitAll注释 410
12.1.6 开发测试客户端——JAASBeanClient.java 411
12.1.7 运行查看结果 412
12.2 基于数据库的JAAS安全验证 413
12.2.1 配置安全域——login-config.xml 413
12.2.2 配置数据源——mysql-ds.xml 414
12.2.3 创建数据库 414
12.2.4 引用安全域——jboss.xml 415
12.2.5 运行查看结果 416
12.2.6 打包JAASTest.zip 416
12.3 企业信息管理系统——增加JAAS验证功能 416
12.3.1 为服务器端增加JAAS验证功能——修改emis项目 417
12.3.2 为客户端增加JAAS登录代码——修改sse2项目 417
12.3.3 打包服务器端emis04(EJB+MySQL+JTA+JAAS).zip和客户端emis04(Struts2+Spring+EJB+JAAS).zip 419
12.4 本课小结 419
12.4.1 总结本课的知识点 419
12.4.2 要掌握的关键点 420
12.4.3 继续下一课:Java命名和目录服务(JNDI) 420
第13课 Java命名和目录服务(JNDI) 421
13.1 JNDI概述 421
13.1.1 JNDI基本原理 421
13.1.2 JNDI接口与服务实现 422
13.1.3 JNDI的查找 423
13.2 在EJB中自定义JNDI名称 423
13.2.1 默认命名方式的不足 424
13.2.2 自定义命名的方法 424
13.3 自定义JNDI实现流程 425
13.3.1 新建远程接口类JNDIBeanRemote.java并重命名JNDI 425
13.3.2 新建实现类JNDIBean.java 425
13.3.3 开发测试客户端JNDIBeanClient.java 426
13.3.4 运行查看结果 426
13.3.5 打包JNDITest.zip 427
13.4 本课小结 428
13.4.1 总结本课的知识点 428
13.4.2 要掌握的关键点 428
13.4.3 继续下一课:Java消息服务(JMS) 429
第14课 Java消息服务(JMS) 431
14.1 JMS异步通信原理 431
14.1.1 JMS消息模型 431
14.1.2 JMS接口类型 432
14.1.3 JMS消息格式 433
14.2 JMS消息中间件 434
14.2.1 JMS消息中间件产生的背景 434
14.2.2 常用的JMS消息中间件 434
14.2.3 JMS在EJB中的应用 435
14.2.4 JMS在Spring中的应用 435
14.3 本课小结 436
14.3.1 总结本课的知识点 437
14.3.2 要掌握的关键点 437
14.3.3 继续下一课:Java邮件服务(JavaMail) 437
第15课 Java邮件服务(JavaMail) 439
15.1 JavaMail基本原理 439
15.1.1 JavaMail常用协议 439
15.1.2 JavaMail的组成 440
15.1.3 JavaMail核心API 441
15.2 JavaMaill收发邮件 442
15.2.1 发送邮件 442
15.2.2 接收邮件 443
15.2.3 回复邮件 444
15.2.4 转发邮件 444
15.3 使用JBoss的邮件服务发送邮件 445
15.3.1 配置邮件服务mail-service.xml 445
15.3.2 开发测试页面testmail.jsp 446
15.3.3 运行测试结果 448
15.3.4 打包JavaMailTest.zip 449
15.4 本课小结 449
15.4.1 总结本课的知识点 449
15.4.2 要掌握的关键点 450
15.4.3 继续下一课:Web服务(Web Service) 450
第16课 Web服务(Web Service) 451
16.1 Web服务概述 451
16.1.1 Web服务引入 451
16.1.2 Web服务框架Axis 452
16.1.3 Web服务框架XFire 452
16.1.4 Web服务框架CXF 453
16.2 Web服务在JBoss中的应用 453
16.2.1 开发Web服务类——MyFirstService.java 454
16.2.2 配置Web服务Servlet——web.xml 455
16.2.3 发布Web服务到JBoss 455
16.2.4 查看Web服务 456
16.2.5 调用Web服务 458
16.2.6 打包WebServiceTest.zip 459
16.3 本课小结 460
16.3.1 总结本课的知识点 460
16.3.2 要掌握的关键点 461
16.3.3 继续下一课:Java管理体系(JMX) 461
第17课 Java管理体系(JMX) 463
17.1 JMX概述 463
17.1.1 JMX是什么 463
17.1.2 JMX体系结构 464
17.1.3 JMX体系规范 465
17.1.4 JMX常用框架 466
17.2 JMX应用 467
17.2.1 JMX入门实例HelloJMX 467
17.2.2 Tomcat下的JMX管理器 468
17.2.3 JBoss下的JMX管理器 469
17.2.4 Spring下的JMX应用 470
17.3 本课小结 471
17.3.1 总结本课的知识点 471
17.3.2 要掌握的关键点 472
17.3.3 继续下一课:Java连接器架构(JCA) 472
第18课 Java连接器架构(JCA) 473
18.1 JCA连接器概述 473
18.1.1 JCA产生的背景 473
18.1.2 JCA提供的功能 474
18.1.3 JCA接口规范 474
18.1.4 JCA服务支持 475
18.1.5 JCA的优缺点 476
18.2 JCA连接器应用 476
18.2.1 JBoss提供的JCA支持 476
18.2.2 Spring与JCA的集成 477
18.3 本课小结 478
18.3.1 总结本课的知识点 478
18.3.2 要掌握的关键点 478
18.3.3 继续下一部分:Java Web开源技术与框架 478
第4部分 Java Web开源技术与框架第19课 工作流引擎——jBPM开源工作流的使用 483
19.1 工作流概述 483
19.1.1 工作流的基本概念 483
19.1.2 工作流管理系统的组成 484
19.1.3 工作流的应用场景 485
19.1.4 工作流引擎 486
19.1.5 工作流规范 486
19.2 开源工作流引擎 487
19.2.1 JBoss公司的jBPM 488
19.2.2 Opensymphony组织的OSWorkflow 488
19.2.3 Enhydra公司的Shark 489
19.2.4 Apache组织的OFBiz 489
19.2.5 对比分析 489
19.3 开源工作流引擎jBPM的使用 490
19.3.1 下载并安装jBPM 490
19.3.2 为Eclipse安装GPD插件 495
19.3.3 为Eclipse配置jBPM库 497
19.3.4 往Eclipse中导入jBPM样例库 498
19.3.5 jBPM流程引擎开发API 500
19.3.6 jBPM流程文件设计 503
19.3.7 运行实例 514
19.4 本课小结 516
19.4.1 总结本课的知识点 516
19.4.2 要掌握的关键点 517
19.4.3 继续下一课:规则引擎——Drools开源规则引擎的使用 517
第20课 规则引擎——Drools开源规则引擎的使用 519
20.1 规则引擎概述 519
20.1.1 规则引擎产生的背景 519
20.1.2 规则引擎的工作机制 520
20.1.3 Java规则引擎的工作机制 521
20.1.4 Java规则引擎API 522
20.1.5 常用的Java规则引擎 523
20.2 使用Drools规则引擎 525
20.2.1 下载并安装Drools 525
20.2.2 下载并安装Drools插件 525
20.2.3 新建Drools规则引擎项目 527
20.2.4 新建Drools工作流项目 531
20.2.5 Drools规则文件语法 533
20.2.6 Drools规则引擎API 539
20.3 本课小结 541
20.3.1 总结本课的知识点 541
20.3.2 要掌握的关键点 542
20.3.3 继续下一课:搜索引擎——Lucene开源搜索引擎的使用 543
第21课 搜索引擎——Lucene开源搜索引擎的使用 545
21.1 搜索引擎概述 545
21.1.1 搜索引擎的发展历史 545
21.1.2 搜索引擎的分类 546
21.1.3 经典的搜索应用 546
21.1.4 基于搜索的网站排名 547
21.1.5 基于Java的开源搜索引擎 548
21.2 Lucene开源搜索引擎 549
21.2.1 Lucene的工作原理与搜索API 550
21.2.2 创建文档对象Document 551
21.2.3 使用IndexWriter保存文档索引 552
21.2.4 使用IndexSearcher进行搜索 553
21.2.5 使用IndexReader删除索引 553
21.2.6 中文分词器 554
21.3 本课小结 555
21.3.1 总结本课的知识点 555
21.3.2 要掌握的关键点 556
21.3.3 继续下一课:缓存引擎——OSChache和Ehcache缓存引擎的使用 557
第22课 缓存引擎——OSChache和Ehcache缓存引擎的使用 559
22.1 数据缓存概述 559
22.1.1 数据缓存的基本概念 559
22.1.2 数据缓存策略 560
22.1.3 数据缓存介质 561
22.1.4 常用的Java开源缓存框架 562
22.2 使用OSCache进行页面缓存 563
22.2.1 安装并配置OSCache 563
22.2.2 使用JSP标签缓存部分页面 564
22.2.3 使用过滤器缓存整个页面 566
22.2.4 使用OSCache API缓存Java对象 567
22.2.5 在iBATIS中使用OSCache 568
22.2.6 在Hibernate中使用OSCache 568
22.3 使用Ehcache进行数据库缓存 569
22.3.1 安装并配置Ehcache 569
22.3.2 在Hibernate中使用Ehcache 570
22.3.3 使用过滤器缓存Web页面 570
22.3.4 使用Ehcache API缓存Java对象 573
22.4 本课小结 573
22.4.1 总结本课的知识点 573
22.4.2 要掌握的关键点 574
22.4.3 继续下一课:任务调度——Quartz任务调度框架的使用 575
第23课 任务调度——Quartz任务调度框架的使用 577
23.1 Java任务调度概述 577
23.1.1 使用Java定时器 577
23.1.2 基于Java的开源任务调度框架 579
23.2 任务调度框架Quartz的使用 580
23.2.1 Quartz的安装与配置 580
23.2.2 在Java程序中使用Quartz 583
23.2.3 在Web应用中使用Quartz 584
23.2.4 在Spring中使用Quartz 585
23.2.5 Cron表达式 587
23.3 本课小结 588
23.3.1 总结本课的知识点 588
23.3.2 要掌握的关键点 589
23.3.3 继续下一节课:身份认证——Acegi身份认证框架的使用 589
第24课 身份认证——Acegi身份认证框架的使用 591
24.1 身份认证概述 591
24.1.1 身份认证的基本方式 591
24.1.2 基于角色的访问控制模型RBAC 592
24.1.3 传统的Session身份认证方式 593
24.1.4 使用AOP进行身份认证 594
24.1.5 基于Java的开源身份认证框架 596
24.2 身份认证框架Acegi的使用 597
24.2.1 Acegi的使用方式 597
24.2.2 Acegi的安装与配置 598
24.2.3 在web.xml中配置Acegi过滤器 599
24.2.4 在applicationContext-acegi-security.xml中配置Acegi过滤器和拦截器 600
24.2.5 在users.properties中配置用户和角色 604
24.2.6 开发主页面index.jsp 605
24.2.7 开发登录页面acegiLogin.jsp 606
24.2.8 开发安全页面secure/index.jsp 607
24.2.9 开发超级管理员安全页面secure/extreme/index.jsp 608
24.2.10 开发无权访问失败页面acegiDenied.jsp 608
24.3 本课小结 609
24.3.1 总结本课的知识点 609
24.3.2 要掌握的关键点 610
24.3.3 继续下一课:报表服务——Eclipse BIRT、JFreeChart和Cewolf的使用 611
第25课 报表服务——Eclipse BIRT、JFreeChart和Cewolf的使用 613
25.1 基于Java的开源报表框架 613
25.2 常用报表框架的使用 614
25.2.1 基于Eclipse的报表工具BIRT 614
25.2.2 使用JFreeChart输出图表 617
25.2.3 基于JFreeChart的标签框架Cewolf 619
25.3 本课小结 620
25.3.1 总结本课的知识点 620
25.3.2 要掌握的关键点 620
25.3.3 继续下一课:系统测试——代码质量检查、单元测试、性能测试、自动构建、项目管理 621
第26课 系统测试——代码质量检查、单元测试、性能测试、自动构建、项目管理 623
26.1 代码质量检查 623
26.1.1 使用Checkstyle检查代码格式 624
26.1.2 使用PMD检查代码Bug 627
26.1.3 使用FindBugs检查代码潜在Bug 630
26.2 单元测试 632
26.2.1 使用JUnit进行单元测试 633
26.2.2 使用EasyMock辅助单元测试 637
26.3 性能测试 639
26.3.1 使用JMeter进行压力测试 639
26.3.2 使用Profiler检查内存泄漏 642
26.4 自动构建 643
26.4.1 使用Ant进行自动构建 644
26.4.2 使用Maven进行自动构建 648
26.4.3 使用CruiseControl进行持续集成 650
26.5 项目管理 651
26.5.1 使用JIRA进行Bug跟踪 651
26.5.2 使用Confluence构建Wiki知识网站 652
26.6 本课小结 653
26.6.1 总结本课的知识点 653
26.6.2 要掌握的关键点 654
26.6.3 继续下一课:系统集群——集群、负载均衡和故障转移 654
第27课 系统集群——集群、负载均衡和故障转移 655
27.1 基于Tomcat的集群系统 655
27.1.1 集群的基本概念 656
27.1.2 Tomcat集群原理 656
27.1.3 Tomcat集群配置 659
27.1.4 使用JMX监控集群 666
27.2 基于Tomcat的负载均衡 667
27.2.1 AJP 1.3数据包协议 667
27.2.2 mod_jk插件 673
27.2.3 Apache 2.2负载均衡配置 676
27.3 本课小结 678
27.3.1 总结本课的知识点 678
27.3.2 要掌握的关键点 679
27.3.3 继续下一课:Java Web系统设计与架构 679