第0章 Java Web开发总览 9
第一部分 9
第1章 Java Web开发思想 9
1.1 JavaEE简介 9
1.1.1 JavaEE的发展 9
1.1.2 JavaEE运行模式 10
1.2 JavaEE核心技术 11
1.2.1 JSP(Java服务页面) 12
1.2.2 Servlet 12
1.2.3 EJB(企业级JavaBean) 13
1.2.4 JDBC(Java数据库连接) 14
1.2.5 JTA(Java事务) 15
1.2.6 JavaMail(Java邮件服务) 16
1.2.7 JMS(Java消息服务) 17
1.2.8 RMI(远程方法调用) 18
1.2.9 JNDI(Java命名和目录服务) 18
1.2.10 XML(扩展标识语言) 19
1.2.11 JMX(Java分布式管理) 20
1.2.12 JACC(Java容器授权合同) 20
1.2.13 JCA(Java连接器体系) 21
1.3 MVC模式原理 22
1.4 Model规范 23
1.4.1 Model 1规范 23
1.4.2 Model 2规范 24
1.5 Java Web开发所需要的技术 24
1.5.1 Ajax 25
1.5.2 MVC框架 27
1.5.3 持久层技术 28
1.6 Java Web开发学习路线图 29
1.7 小结 29
第2章 搭建Java Web开发和运行环境2.1 搭建Java开发环境 31
2.1.1 下载并安装JDK 31
2.1.2 设定环境变量 33
2.1.3 验证JDK环境是否配置成功 34
2.2 搭建Java Web运行环境 35
2.2.1 下载Tomcat 7 35
2.2.2 设定TOMCAT_HOME 36
2.2.3 验证Tomcat 7是否安装成功 37
2.2.4 在Tomcat 7下创建和发布Web应用 39
2.3 搭建Java Web开发环境 41
2.3.1 下载并安装Eclipse 41
2.3.2 下载并安装MyEclipse 43
2.3.3 整合MyEclipse和Tomcat 7 45
2.3.4 关于MyEclipse的一些常用操作 47
2.4 使用MyEclipse创建和发布Web应用 49
2.4.1 编写能输出HelloWorld的JSP文件 52
2.4.2 行JSP文件 53
2.5 小结 53
第3章 搭建数据库开发环境 55
3.1 MySQL概述 55
3.1.1 MySQL简介 55
3.1.2 下载并安装MySQL 55
3.1.3 配置MySQL 59
3.1.4 下载并安装SQLyog 61
3.1.5 SQLyog访问服务器 63
3.1.6 下载并安装XAMPP 65
3.1.7 下载MySQL的数据库驱动程序 67
3.2 使用MySQL数据库 68
3.2.1 采用SQLyog创建数据库 68
3.2.2 采用SQLyog创建表格 69
3.2.3 采用XAMPP管理MySQL数据库 70
3.2.4 创建数据库表 71
3.3 SQL语法介绍 72
3.3.1 SQL简介 73
3.3.2 SQL基本语法 73
3.4 Oracle简介 76
3.4.1 下载数据库服务器Oracle 76
3.4.2 安装数据库服务器Oracle 79
3.4.3 安装数据库服务器Oracle客户端 79
3.5 小结 81
第二部分 84
第4章 JavaScript技术详解 84
4.1 JavaScript语言基础 84
4.1.1 变量和数据类型 84
4.1.2 运算符和表达式 85
4.1.3 程序控制语句 88
4.2 自定义函数 90
4.2.1 函数的定义 90
4.2.2 函数的使用 90
4.3 系统内部函数 91
4.3.1 使用eval返回字符串的值 91
4.3.2 使用escape进行字符编码 93
4.3.3 使用unescape进行字符解码 93
4.3.4 使用parseInt和parseFloat进行数值转换 94
4.3.5 使用typeof判断对象类型 95
4.3.6 使用isFinite判断一个变量是否有界 96
4.3.7 使用isNaN判断一个变量是否是数值 97
4.4 系统内部对象 97
4.4.1 Array对象 98
4.4.2 Object对象 99
4.4.3 Window对象 100
4.4.4 Navigator对象 102
4.4.5 Location对象 104
4.4.6 History对象 105
4.4.7 Screen对象 107
4.5 XMLHttpRequest概述 108
4.5.1 XMLHttpRequest的生命周期 108
4.5.2 XMLHttpRequest的方法和属性 113
4.5.3 建立XMLHttpRequest对象池 114
4.5.4 使用Iframe代替XMLHttpRequest 117
4.6 小结 121
第5章 Servlet技术详解 123
5.1 Servlet技术简介 123
5.1.1 Servlet的运行原理 123
5.1.2 MyEclipse开发工具对Servlet的支持 125
5.2 Servlet的生命周期 128
5.2.1 加载Servlet 128
5.2.3 处理请求 129
5.2.3 处理请求 129
5.2.4服务结束 129
5.3 Filter技术 129
5.3.1 Filter技术原理 130
5.3.2 Filter示例 130
5.4 Servlet 3.0新特性 132
5.4.1 支持异步处理 132
5.4.2 支持注解 132
5.4.3 支持可插性(pluggability) 134
5.5 关于Servlet 3.0实例 134
5.5.1 关于Servlet 3.0环境的搭建 134
5.5.2 Servlet 3.0示例 137
5.6 小结 139
第6章 JSP技术详解 141
6.1 JSP技术简介 141
6.1.1 JSP基本概念 141
6.1.2 MyEclipse开发工具对JSP的支持 141
6.2 JSP的基本语法 142
6.2.1 基本语句 142
6.2.2 数据类型 144
6.3 JSP的内置对象 145
6.3.1 request对象 145
6.3.2 response对象 146
6.3.3 pageContext对象 146
6.3.4 session对象 147
6.3.5 application对象 148
6.3.6 out对象 148
6.4 JSP技术应用 149
6.4.1 使用JSP操作Cookie 149
6.4.2 利用缓存技术提高JSP性能 150
6.5 小结 151
第7章 JDBC技术详解 153
7.1 JDBC概述 153
7.1.1 JDBC相关概念 153
7.1.2 配置JDBC驱动程序 154
7.2 JDBC基础应用——数据库连接 156
7.2.1 JDBC数据连接示例 156
7.2.2 典型的JDBC数据连接的步骤 157
7.3 各种驱动程序实例 160
7.3.1 利用Java到数据库协议方式连接数据库 160
7.3.2 利用Java到本地API方式连接数据库 161
7.3.3 利用JDBC-ODBC方式连接数据库 163
7.4 JDBC高级应用——事务处理 165
7.4.1 事务处理概述 166
7.4.2 如何应用事务处理 166
7.5 JDBC高级应用——数据库连接池 167
7.5.1 数据库连接池简介 167
7.5.2 数据库连接池原理 168
7.5.3 配置和使用服务器Tomcat 7连接池 171
7.6 小结 172
第三部分 175
第8章 Ajax技术详解 175
8.1 Ajax概述 175
8.1.1 Ajax的来源 175
8.1.2 Ajax的工作原理 175
8.1.3 Ajax的发展趋势 176
8.1.4 Ajax的应用示例 177
8.2 Ajax涉及的技术 177
8.2.1 XMLHttpRequest技术 178
8.2.2 JavaScript(Java脚本语言) 179
8.2.3 DOM(文档对象模型) 180
8.2.4 CSS(层叠样式表单) 181
8.2.5 XML(可扩展标识语言) 182
8.3 Ajax技术效果 182
8.3.1 传统实现方式 182
8.3.2 Ajax实现方式 186
8.3.3 两种实现方式对比分析 189
8.4 关于Ajax的经典框架——jQuery 189
8.4.1 jQuery框架的下载和配置 190
8.4.2 jQuery框架的简单使用 190
8.5 关于jQuery框架的经典运用 193
8.5.1 级联菜单 193
8.5.2 窗口的淡入/淡出 195
8.5.3 可编辑边框 197
8.6 Ajax的主流框架 199
8.6.1 Ext 199
8.6.2 Prototype 201
8.6.3 DOJO 202
8.6.4 DWR 203
8.6.5 GWT 203
8.6.6 Buffalo 204
8.6.7 JSON-RPC 205
8.7 小结 205
第9章 Struts 2技术详解 207
9.1 Struts 2介绍 207
9.2 Struts 2的环境配置 207
9.2.1 下载Struts 2 208
9.2.2 搭建Struts 2的开发运行环境 209
9.3 Struts 2入门示例 211
9.3.1 编写实现消息输出的HelloWorld.jsp页面 212
9.3.2 编写控制器HelloWorld.java 212
9.3.3 配置Struts文档struts.xml和struts.properties 213
9.3.4 配置web.xml 214
9.3.5 测试运行该示例 215
9.4 Struts 2的核心机制——过滤器 216
9.5 Struts 2的核心机制——输入校验 219
9.5.1 输入校验简介 219
9.5.2 Struts 2的输入校验——校验框架 222
9.5.3 Struts 2的输入校验——复写validate方法 226
9.6 Struts 2的核心机制——拦截器 227
9.6.1 Struts 2的拦截机制 228
9.6.2 Struts 2拦截器应用——对运行时间较长视图界面的处理 231
9.7 Struts 2的核心机制——国际化 233
9.7.1 Struts 2国际化简介 233
9.7.2 深入了解国际化——全局资源文件 236
9.7.3 深入了解国际化——类资源文件 238
9.7.4 深入了解国际化——包资源文件 240
9.8 Struts 2的核心机制——标签库 242
9.9 Struts 2的核心机制——配置文件 244
9.9.1 struts.properties 244
9.9.2 struts.xml 247
9.10 Struts 2综合示例 248
9.10.1 档案管理系统的UML用例图 248
9.10.2 档案管理系统功能描述 249
9.10.3 描述系统的业务实体 254
9.10.4 组织系统的业务逻辑 255
9.10.5 档案存放位置实体的实现 256
9.10.6 档案基本信息实体的实现 258
9.10.7 档案借阅记录实体的实现 261
9.10.8 存放位置管理画面 266
9.10.9 档案管理画面 267
9.10.10 档案借阅记录管理画面 269
9.10.11 实现管理存放位置的功能 272
9.10.12 实现管理档案的功能 275
9.10.13 实现管理档案借阅记录的功能 281
9.10.14 实现Struts 2的登录控制器类 286
9.10.15 编写配置文件 288
9.10.16 程序演示 292
9.11 小结 294
第10章 Spring 3技术详解 296
10.1 Spring概述 296
10.1.1 Spring简介 296
10.1.2 Spring 3整体框架 296
10.2 Spring 3环境配置 297
10.2.1 下载Spring 3框架 297
10.2.2 搭建Spring 3的开发运行环境 299
10.3 Spring 3入门示例 302
10.3.1 编写JSP页面HelloWorld.jsp 302
10.3.2 编写控制器HelloWorld.java 302
10.3.3 配置Spring文档applicationContext.xml 304
10.3.4 配置web.xml 305
10.3.5 测试运行该示例 306
10.4 Spring的核心机制 306
10.4.1 控制反转思想 306
10.4.2 分发器原理 310
10.5 Spring 3多动作控制器 313
10.5.1 多动作控制器的原理 313
10.5.2 多动作控制器的示例 316
10.6 实现Spring与Struts 2集成 319
10.6.1 关于Spring框架的插件 319
10.6.2 Spring与Struts 2框架集成 321
10.7 Spring 3综合示例 324
10.7.1 权限管理系统功能概述 324
10.7.2 业务实体设计 326
10.7.3 自动生成数据库表结构 330
10.7.4 DAO模型的实现 340
10.7.5 业务逻辑功能实现 344
10.7.6 编写权限管理系统的JSP页面 348
10.7.7 编写Spring 3的配置文件config.xml 352
10.7.8 测试运行该示例 356
10.8 小结 359
第11章 Hibernate 3技术详解 361
11.1 Hibernate概述 361
11.1.1 Hibernate简介 361
11.1.2 Hibernate 3整体框架 361
11.1.3 搭建Hibernate 3的开发运行环境 362
11.2 Hibernate 3入门示例 365
11.2.1 对Hibernate 3框架支持——关系数据库到对象映射 365
11.2.2 Hibernate 3框架中经常用到的工具类 369
11.3 Hibernate 3的基础 372
11.3.1 Hibernate 3框架核心类——Configuration类 373
11.3.2 Hibernate 3的主键生成机制 374
11.3.3 Hibernate 3的两种配置方式 375
11.4 Hibernate 3的配置文件 375
11.4.1 Hibernate 3的两种配置方式 375
11.4.2 配置数据库连接池 376
11.4.3 从容器中获取数据库连接池 379
11.5 Hibernate 3的关系映射 380
11.5.1 一对一映射 380
11.5.2 一对多和多对一映射 381
11.5.3 多对多映射 382
11.6 Hibernate 3缓存机制 382
11.6.1 一级缓存 382
11.6.2 二级缓存 384
11.7 Hibernate对JPA的支持 384
11.7.1 JPA简介 385
11.7.2 persistence.xml详细配置 390
11.8 MyEclipse开发环境对JPA的支持 391
11.8.1 用MyEclipse实现JPA框架环境 391
11.8.2 MyEclipse对JPA框架支持——添加实体 393
11.8.3 MyEclipse对JPA框架支持——单个类转成JPA实体 395
11.9 Hibernate 3框架与其他框架的集成 398
11.9.1 Spring 3+Hibernate 3框架的集成 398
11.9.2 Struts 2+Spring 3+Hibernate 3框架的集成 401
11.10 Spring 3和Hibernate 3整合示例 403
11.10.1 图书管理系统功能描述 403
11.10.2 Spring 3和Hibernate 3的整合方式 405
11.10.3 持久层功能的实现 408
11.10.4 实现对读者的管理功能 414
11.10.5 实现对图书的管理功能 416
11.10.6 实现维护借阅规则的功能 420
11.10.7 实现借阅和归还图书的功能 422
11.10.8 编写图书管理系统的JSP页面 427
11.10.9 编写配置文件config.xml 429
11.10.10 测试运行该示例 432
11.11 小结 434
第四部分 437
第12章 Log4j使用指南 437
12.1 Log4j简介 437
12.1.1 Log4j概述 437
12.1.2 为什么要使用Log4j 437
12.2 建立Log4j的开发环境 438
12.2.1 下载Log4j 438
12.2.2 配置Log4j 439
12.3 Log4j的使用方法 439
12.3.1 Log4j的基本使用方法 439
12.3.2 日志的输出格式 440
12.3.3 日志的输出位置 441
12.3.4 日志的优先级 442
12.4 小结 442
第13章 JUnit使用指南 444
13.1 为什么要进行单元测试 444
13.2 建立JUnit 4的开发环境 446
13.2.1 下载JUnit 4组件 446
13.2.2 搭建JUnit 4项目环境 447
13.2.3 JUnit 4组件入门示例 449
13.2.4 入门示例的升级版 451
13.3 JUnit的使用方法 453
13.3.1 JUnit 4的基本使用方法 453
13.3.2 在Spring 3中使用JUnit 4 454
13.3.3 JUnit与Ant整合 455
13.4 小结 456
第14章 JFreeChart使用指南 458
14.1 JFreeChart概述 458
14.2 搭建JFreeChart的开发环境 458
14.2.1 下载JFreeChart 458
14.2.2 搭建JFreeChart项目环境 459
14.2.3 JFreeChart组件入门示例 461
14.3 JFreeChart的高级应用 464
14.3.1 JFreeChart的核心类 465
14.3.2 Java Web项目实现饼形图形 465
14.4 小结 467
第15章 Dom4j使用指南 469
1 5.1 Dom4j简介 469
15.2 建立Dom4j的开发环境 469
15.2.1 下载Dom4j 469
15.2.2 搭建Dom4j项目环境 470
15.2.3 Dom4j组件入门示例 471
15.2.4 Dom4j组件入门示例升级版 474
15.3 Dom4j的使用方法 475
15.3.1 Dom4j的基本使用方法 475
15.3.2 Dom4j组件的高级应用——创建XML文件 477
15.4 小结 479
第16章 注册管理系统(JSP+JavaBean) 479
第五部分 482
16.1 注册管理系统需求描述 482
16.1.1 注册功能 482
16.1.2 登录功能 482
16.1.3 查看注册用户列表功能 483
16.2 设计JavaBean 483
16.3 数据库设计 486
16.3.1 数据库表结构设计与建立 486
16.3.2 建立数据库连接辅助类 488
16.4 JSP页面实现 489
16.4.1 用户注册管理画面 489
16.4.2 登录画面 490
16.4.3 查看注册用户列表画面 490
16.5 程序演示 491
16.6 小结 492
第17章 新闻发布系统(JSP+Servlet+DAO) 492
17.1 需求描述 494
17.2 功能预览 494
17.2.1 设定新闻类别功能 494
17.2.2 登录功能 495
17.2.3 登录成功后的选择功能 495
17.2.4 发布新闻功能 495
17.2.5 浏览新闻功能 496
17.3 采用JSP+Servlet+DAO+JDBC架构 496
17.3.1 设计视图层的架构 497
17.3.2 设计控制层的架构 497
17.3.3 设计模型层的架构 503
17.3.4 设计持久层的架构 504
17.4 系统设计 508
17.4.1 如何实现对数据库的操作 509
17.4.2 如何实现持久层的设计 509
17.4.3 如何实现新闻发布系统的业务逻辑 510
17.5 数据库设计 511
17.5.1 数据库表结构设计与建立 511
17.5.2 配置数据库连接 513
17.6 DAO模型的实现 514
17.6.1 管理员DAO的实现 514
17.6.2 新闻类别DAO的实现 516
17.6.3 新闻DAO的实现 518
17.7 编写新闻发布系统的业务逻辑类 521
17.7.1 管理管理员的业务逻辑实现 522
17.7.2 管理新闻类别的业务逻辑实现 524
17.7.3 管理新闻的业务逻辑实现 527
17.8 编写新闻发布系统的控制器类 530
17.8.1 管理员控制器类 531
17.8.2 新闻类别管理控制器类 532
17.8.3 发布浏览新闻控制器类 534
17.8.4 登录控制器类 537
17.9 前台页面的实现 538
17.9.1 新闻类别管理画面 538
17.9.2 发布新闻画面 540
17.9.3 登录画面 542
17.9.4 登录成功的画面 544
17.9.5 浏览新闻画面 545
17.10 编写配置文件newsRelease.xml 546
17.11 程序演示 547
17.12 小结 549
第18章 网上购物系统(Ajax+Struts 2+Hibernate 3
18.1 系统概述 551
18.2 需求分析 551
18.2.1 购物者注册功能 552
18.2.2 对货物进行分类存放的功能 552
18.2.3 维护货物基本信息的功能 552
18.2.4 浏览购买货物的功能 553
18.2.5 管理购物车的功能 553
18.3 系统与架构设计 554
18.3.1 DWR和Struts 2的整合方式 554
18.3.2 搭建开发环境 556
18.3.3 后台持久层设计 557
18.3.4 后台业务逻辑设计 558
18.4 构建数据库表结构 559
18.4.1 实现业务实体间的对应关系 559
18.4.2 配置数据连接文件 567
18.4.3 查看数据库表结构 568
18.5 后台持久层实现 568
18.5.1 购物者持久层实现 569
18.5.2 货物类别持久层实现 571
18.5.3 货物持久层实现 572
18.5.4 购物车持久层实现 574
18.6 后台业务逻辑的实现 576
18.6.1 管理购物者的功能实现 576
18.6.2 管理货物类别的功能实现 577
18.6.3 管理货物的功能实现 578
18.6.4 管理购物车的功能实现 580
18.7 编写网上购物系统的控制器类 581
18.7.1 货物类别管理控制器类 581
18.7.2 货物管理控制器类 583
18.7.3 购物车管理控制器类 585
18.7.4 登录验证的配置文件 588
18.8 前台JSP页面实现 591
18.8.1 采用DWR实现验证 591
18.8.2 货物类别管理画面 592
18.8.3 货物管理画面 593
18.8.4 浏览购买货物画面 595
18.8.5 修改购货记录画面 596
18.9 编写配置文件 598
18.10 程序演示 599
18.11 小结 601
第19章 用户管理系统(Spring 3+Hibernate 3
19.1 需求的提出 603
19.2 需求分析 604
19.2.1 采用用例的方式分析需求 604
19.2.2 产生需求规格说明书 604
19.3 架构设计 608
19.3.1 用户管理系统采用的架构 608
19.3.2 在MyEclipse下建立项目userManagement 608
19.3.3 配置本项目的web.xml文件 610
19.4 系统设计 611
19.4.1 实体域模型设计 611
19.4.2 DAO模型设计 612
19.4.3 过程域模型设计 612
19.4.4 控制模型设计 612
19.4.5 视图模型设计 613
19.5 数据库设计 613
19.5.1 根据实体模型设计数据库表结构 613
19.5.2 根据数据库表生成对应的XML文件 615
19.5.3 根据XML文件生成持久化类 617
19.6 编写用户管理系统的DAO 625
19.6.1 用户DAO接口UserDAO.java 625
19.6.2 部门DAO接口DepartmentDAO.java 626
19.6.3 地址DAO接口AddressDAO.java 626
19.6.4 联系电话DAO接口PhoneDAO.java 627
19.6.5 用户DAO实现类UserDAOImpl.java 627
19.6.6 部门DAO实现类DepartmentDAOImpl.java 628
19.6.7 地址DAO实现类AddressDAOImpl.java 629
19.6.8 联系电话DAO实现类PhoneDAOImpl.java 630
19.7 编写用户管理系统的业务逻辑类 631
19.7.1 管理用户接口UserService.java 631
19.7.2 管理部门接口DepartmentService.java 632
19.7.3 管理地址接口AddressService.java 632
19.7.4 管理联系电话接口PhoneService.java 633
19.7.5 管理用户实现类UserServiceImpl.java 633
19.7.6 管理部门实现类DepartmentServiceImpl.java 635
19.7.7 管理地址实现类AddressServiceImpl.java 636
19.7.8 管理联系电话实现类PhoneServiceImpl.java 637
19.8 编写用户管理系统的控制器类 638
19.8.1 登录控制器类LoginController.java 639
19.8.2 用户管理控制器类UserController.java 640
19.9 编写用户管理系统的JSP页面 645
19.9.1 用户管理画面userManagement.jsp 646
19.9.2 用户登录画面login.jsp 648
19.10 编写配置文件config.xml 649
19.11 程序演示 653
19.12 小结 655
第20章 留言簿管理系统(JSF 2+Struts 2+Spring 3
20.1 系统概述 657
20.2 需求分析 657
20.2.1 UML用例图 657
20.2.2 采用原型法进行分析 657
20.3 系统与架构设计 659
20.3.1 JSF 2和Struts 2的整合方式 659
20.3.2 在MyEclipse下建立项目bbsManagement 661
20.3.3 配置本项目的web.xml文件 661
20.3.4 持久层的设计 662
20.3.5 业务逻辑的设计 663
20.4 持久层设计与实现 664
20.4.1 数据模型设计 664
20.4.2 建立数据库表结构 670
20.4.3 留言内容的持久层实现 673
20.4.4 留言回复的持久层实现 674
20.5 前台JSP页面实现 675
20.5.1 发布留言内容管理画面 676
20.5.2 回复留言内容画面 677
20.5.3 浏览留言内容画面 678
20.5.4 使用JSF来实现画面 679
20.6 后台业务逻辑的实现 680
20.6.1 管理留言内容接口 680
20.6.2 管理留言回复接口 681
20.6.3 管理留言内容实现类 681
20.6.4 管理留言回复实现类 682
20.7 控制器类的实现 684
20.7.1 留言内容管理控制器类 684
20.7.2 留言回复管理控制器类 686
20.8 编写Struts 2的配置文件struts.xml 688
20.9 编写Spring 3的配置文件config.xml 689
20.10 程序演示 691
20.11 小结 693
第21章 网上考试系统(Struts 2+Spring 3+Hibernate 3+JPA 2
21.1 需求的提出 695
21.2 需求分析 695
21.2.1 组合试卷功能 696
21.2.2 维护试题题目功能 697
21.2.3 维护试题项目功能 698
21.2.4 参加考试自动评分功能 699
21.2.5 查看考试结果功能 700
21.3 架构选择 700
21.3.1 是否应该采用Ajax或JSF 700
21.3.2 搭建和配置开发环境 701
21.3.3 网上考试系统的目录结构 702
21.4 系统设计 702
21.4.1 业务实体和持久层设计 702
21.4.2 业务逻辑和控制层设计 703
21.4.3 视图层设计 704
21.5 建立数据库表逻辑结构 705
21.5.1 业务实体的实现 705
21.5.2 配置生成数据库的相关文件 710
21.5.3 根据实体自动生成数据库表结构 711
21.6 DAO模型实现 712
21.6.1 试卷基本信息DAO 712
21.6.2 试题题目 713
21.6.3 试题项目 714
21.7 业务逻辑实现 716
21.7.1 添加试卷基本信息的业务逻辑 716
21.7.2 修改试卷基本信息的业务逻辑 719
21.7.3 删除试卷基本信息的业务逻辑 720
21.7.4 添加试题题目的业务逻辑 720
21.7.5 修改试题题目的业务逻辑 724
21.7.6 删除试题题目的业务逻辑 725
21.7.7 添加试题项目的业务逻辑 725
21.7.8 修改试题项目的业务逻辑 728
21.7.9 删除试题项目的业务逻辑 729
21.7.10 产生试卷的业务逻辑 729
21.7.11 自动评分的业务逻辑 730
21.8 编写网上考试系统的JSP页面 731
21.8.1 试卷基本信息管理画面 731
21.8.2 试题题目管理画面 733
21.8.3 试题项目管理画面 734
21.8.4 参加考试画面 736
21.8.5 查看考试成绩画面 737
21.9 编写Struts 2的配置文件struts.xml 738
21.10 编写Spring 3的配置文件config.xml 739
21.11 程序演示 741
21.12 小结 743