第1章 背景知识 1
任务1 开发一个简单的个人网站 1
1.1 C/S架构与B/S架构 4
1.1.1 C/S架构 4
1.1.2 B/S架构 5
1.2 Web相关概念 5
1.3 静态网页和动态网页的处理流程 6
1.3.1 静态网页的处理流程 6
1.3.2 动态网页的处理流程 7
1.4 Web应用开发技术 8
1.4.1 静态网页开发技术 8
1.4.2 动态网页开发技术 9
1.4.3 企业应用解决方案:J2EE与.NET 10
1.4.4 Java轻量级企业应用解决方案:Struts+Spring+Hibernate 10
1.4.5 更佳的用户体验:Ajax 10
1.5 PetStore项目简介 11
1.6 任务介绍及后面章节内容组织 11
作业 11
第2章 用HTML+CSS实现宠物分类展现静态网页版本 13
任务2 使用HTML+CSS实现宠物分类展现模块的静态网页版本 13
2.1 HTML 15
2.1.1 HTML的基本知识 15
2.1.2 HTML的文档结构 15
2.1.3 HTML标记的公共属性 16
2.1.4 HTML常用标记 17
2.1.5 HTML表单 18
2.2 CSS 19
2.2.1 CSS的分类 20
2.2.2 CSS的语法 20
2.2.3 CSS的选择器 21
2.2.4 CSS的伪类 22
2.2.5 CSS的盒子模式 22
2.2.6 CSS的常用属性 23
2.3 宠物分类展现的界面及Web应用开发步骤 24
2.3.1 宠物分类展现的界面 24
2.3.2 Web应用的开发步骤 26
2.4 实现思路 29
2.4.1 宠物分类展现模块的术语表 29
2.4.2 基于原型迭代的实现思路 30
2.4.3 宠物分类展现模块的发布和迭代计划 30
2.5 实现主页面主体部分Main_body.html 31
2.5.1 使用图像、超链接、换行和空格标记实现主页面的左边导航条部分 31
2.5.2 <map>、<area>标记实现主页面的图片导航 32
2.5.3 通过层div标记进行布局,组装成主页面的主体部分 34
2.5.4 通过CSS设置效果 34
2.6 实现品种列表页面、商品列表页面和宠物信息页面主体部分Category_body.html,Product_body.html,Item_body.html 36
2.6.1 实现品种列表页面主体部分Category_body.html 36
2.6.2 实现商品列表页面主体部分Product_body.html 39
2.6.3 实现宠物详细信息页面主体部分Item_body.html 39
2.7 实现网页的公共部分IncludeTop.html,IncludeBottom.html 39
2.7.1 实现网页的公共底部IncludeBottom.html 39
2.7.2 实现网页的公共顶部IncludeTop.html 41
2.8 组装调试 44
作业 45
第3章 宠物分类展现模块数据库准备及JDBC 46
任务3 为宠物分类展现准备数据并完成各表对应的DAO类 46
3.1 宠物分类展现模块数据准备 49
3.1.1 安装MySQL及其界面管理工具Navicat 49
3.1.2 在MySQL中创建一个数据库petstore 50
3.1.3 分类表category的创建 53
3.1.4 品种表product的创建 54
3.1.5 供应商表supplier的创建 55
3.1.6 系列表item的创建 56
3.1.7 库存表inventory的创建 58
3.1.8 插入测试数据 59
3.1.9 为宠物商城系统创建一个访问数据库petstore的用户 60
3.2 JDBC数据库编程 60
3.2.1 安装MySQL的驱动程序 61
3.2.2 JDBC应用程序的模板代码 61
3.2.3 编写JDBC应用程序修改数据库 63
3.2.4 编写封装创建数据库连接的类 66
3.3 POJO+DAO的访问数据库编程模式 68
3.3.1 编写表结构对应的POJO类 68
3.3.2 设计访问各表的DAO类 69
3.3.3 编写访问各表的DAO类 71
3.3.4 DAO类的使用 74
作业 75
第4章 用Hibernate优化宠物分类展现DAO类 77
任务4 使用Hibernate优化宠物分类展现DAO类 77
4.1 Hibernate简介 78
4.2 使用Hibernate的准备工作 79
4.2.1 Hibernate开发环境的安装配置 79
4.2.2 在项目中添加Hibernate配置文件 79
4.2.3 准备好POJO类和映射文件 80
4.3 用Hibernate访问数据库 81
4.3.1 Hibernate的编程模式 81
4.3.2 使用Hibernate实现数据的插入 82
4.3.3 使用Hibernate实现数据的删除和修改 83
4.3.4 使用Hibernate实现数据的加载 84
4.3.5 使用Hibernate实现数据的查询 85
4.4 使用Hibernate重写DAO类 86
4.4.1 使用Hibernate重写BaseDAO类 87
4.4.2 BaseDAO类的使用 89
4.4.3 基于BaseDAO改写CategoryDAO类 90
4.4.4 基于BaseDAO改写ProductDAO类 90
作业 91
第5章 宠物分类展现模块的第一个动态版本的实现 92
任务5 使用JSP+POJO+DAO+DB实现宠物分类展现的动态网页版本 92
5.1 JSP简介 93
5.1.1 什么是JSP 93
5.1.2 JSP的页面组成 93
5.1.3 JSP指令 95
5.1.4 JSP动作 96
5.2 JSP常用内部对象 96
5.2.1 request与请求参数 97
5.2.2 out 98
5.2.3 session 98
5.3 宠物分类展现网页动态版本开发准备 99
5.3.1 实现思路 99
5.3.2 在web.xml中设置欢迎页面 99
5.4 用JSP实现主页面Main.jsp 100
5.4.1 由IncludeTop.html得到网页顶部文件的动态版本IncludeTop.jsp 100
5.4.2 由IncludeBottom.html得到网页底部文件的动态版本IncludeBottom.jsp 101
5.4.3 由Main_body.html得到主页面Main.jsp 101
5.5 用JSP实现品种列表Category.jsp 102
作业 104
第6章 用JavaBean、EL和JSTL优化宠物分类展现页面 107
任务6 使用JSTL、EL表达式和JavaBean优化宠物分类展现的页面代码 107
6.1 JavaBean 108
6.1.1 JavaBean简介 108
6.1.2 在JSP中使用JavaBean 108
6.2 EL表达式 109
6.2.1 EL表达式简介 109
6.2.2 JSP EL中的有效表达式 110
6.2.3 EL隐含对象 110
6.3 JSTL标签 111
6.3.1 JSTL标签简介 111
6.3.2 常用JSTL标签 112
6.4 优化宠物分类展现页面 117
6.4.1 使用<jsp:useBean>去掉宠物分类展现页面中的new语句 117
6.4.2 用EL表达式和JSTL标签简化宠物分类展现页面代码 117
6.4.3 通过迭代使用EL表达式点符号简化对象属性的输出 120
6.5 使用统一的业务接口 122
6.5.1 设计一个系统共享的业务接口PetStoreFacade 122
6.5.2 设计接口PetStoreFacade的实现类PetStoreImpl 123
6.5.3 用PetStoreImpl实现宠物分类展现各页面 124
作业 125
第7章 用Struts实现宠物商城的登录功能 127
任务7 使用Struts实现宠物商城的用户登录功能 127
7.1 Struts工作原理 128
7.1.1 MVC设计模式 128
7.1.2 Struts简介 128
7.1.3 Struts的运行流程 129
7.1.4 Struts开发环境配置 130
7.2 用户登录界面和MVC模块划分 131
7.2.1 用户登录的界面及流程 131
7.2.2 用Struts实现用户登录的要点 132
7.2.3 用户登录的实现思路 133
7.3 用户登录Model层的实现 134
7.3.1 在数据库中创建表account 134
7.3.2 创建表account对应的POJO类Account 136
7.3.3 创建表account和Account类的Hibernate映射文件 137
7.3.4 创建表account对应的数据库访问DAO类 138
7.3.5 修改宠物商城业务逻辑接口PetStoreFacade和实现类PetStoreImpl 139
7.3.6 创建封装用户录入数据的AccountForm 142
7.4 用户登录View层的实现 143
7.4.1 用户登录界面 143
7.4.2 用户登录成功的界面 145
7.4.3 用户登录失败的界面 147
7.5 用户登录Controller层的实现 148
7.5.1 处理用户登录的SignonAction的实现 148
7.5.2 处理用户退出的SignoffAction的实现 150
7.6 Struts相关的配置文件 151
7.6.1 在web.xml中配置 151
7.6.2 创建Struts核心配置文件struts-config.xml 154
7.7 用Struts实现主页显示 156
7.7.1 在struts-config.xml中为主页显示配置一个简单的forward action 156
7.7.2 修改欢迎页面index.jsp的代码 157
作业 158
第8章 用Struts完善宠物商城的catalog模块 160
任务8 使用Struts完善宠物分类展现和宠物查找模块 160
8.1 用Struts优化完善宠物分类展现页面 163
8.1.1 定义为品种列表页面准备数据的Action 163
8.1.2 定义相关的ActionForm 165
8.1.3 配置ActionForm和Action 165
8.1.4 修改项目中对Category.jsp的页面请求为对Action的请求 166
8.1.5 相应修改Category.jsp的代码 167
8.2 用Struts实现宠物查找功能 168
8.2.1 宠物查找界面及实现思路 168
8.2.2 定义封装查找关键字的ActionForm 170
8.2.3 定义处理查找功能的Action并进行配置 171
8.2.4 在PetStoreFacade和PetStoreImpl中增加支持查找的方法 172
8.2.5 在ProductDAO中增加支持查找的方法 173
8.2.6 创建查找结果页面SearchProducts.jsp 174
8.2.7 创建查找失败页面noPet.jsp 174
8.3 Struts深入 175
8.3.1 使用Struts标签优化保留查询条件 175
8.3.2 在ActionForm中进行验证 176
作业 177
第9章 用Spring优化宠物商城的Catalog和用户登录模块 179
任务9 使用Spring改写Catalog和用户登录模块 179
9.1 Spring简介 180
9.1.1 Spring简介 180
9.1.2 Spring开发环境的安装配置 180
9.1.3 Spring的控制反转和依赖注入 181
9.2 用Spring管理PetStoreImpl和各DAO类对象之间的依赖 182
9.2.1 使用配置文件applicationContext.xml定义依赖关系 182
9.2.2 使用Spring的依赖注入获取相关信息 184
9.3 使用Spring的依赖注入重写catalog模块 185
9.3.1 在web.xml中设置applicationContext.xml和Listener 185
9.3.2 生成BaseAction,传递petstore对象 186
9.3.3 重写已经完成的Action并修改struts-config.xml文件 187
9.4 使用Spring简化Hibernate编程 189
9.4.1 继承HibernateDaoSupport实现BaseDAO类 189
9.4.2 在Spring配置文件中注入sessiorFactory 190
9.4.3 使用import简化配置文件 191
9.5 增加分页显示功能 192
9.5.1 分页显示的实现思路 192
9.5.2 使用Spring的PagedListHolder进行分页 194
9.5.3 修改相关的Action 195
9.5.4 修改相关的JSP页面 197
作业 198
第10章 完成宠物商城的购物车模块 200
任务10 完成宠物商城的购物车功能 200
10.1 购物车的页面及流程 201
10.2 购物车实现思路 203
10.2.1 购物车的MVC划分 203
10.2.2 “添加到购物车”的程序处理流程 204
10.2.3 “从购物车中删除”的程序处理流程 204
10.2.4 “更新购物车”的程序处理流程 204
10.2.5 结账页面的“上一页”、“下一页”链接的程序处理流程 204
10.3 “添加到购物车”功能的实现 204
10.3.1 定义CartItem类 204
10.3.2 定义Cart类 205
10.3.3 定义CartActionForm 208
10.3.4 在struts-cart.xml中配置CartActionForm 209
10.3.5 创建AddItemToCartAction并配置 210
10.3.6 修改PetStoreFacade接口,PetStoreImpl类和InventoryDAO类 211
10.3.7 购物车页面/cart/Cart.jsp的实现 212
10.4 购物车页面和结账页面分页的实现 214
10.5 “从购物车中删除”与“更新购物车”的实现 215
10.5.1 创建RemoveItemFromCartAction并配置 215
10.5.2 创建UpdateCartQuantitiesAction并配置 216
10.6 数据库连接池 216
10.6.1 什么是数据库连接池 217
10.6.2 在Tomcat中配置DBCP数据库连接池 217
10.6.3 测试数据库连接池 219
10.6.4 在Spring中使用数据库连接池 221
作业 223
附录A Java开发包JDK的下载与安装配置 225
附录B Tomcat下载与安装配置及Web应用程序的部署 228
附录C MySQL数据库下载、安装配置 234
附录D MySQL GUI Tools下载、安装配置和使用 237
附录E MySQL的JDBC驱动程序下载、安装、使用 253
附录F Eclipse+Lomboz+MySQL与JDBC下载及使用 255
附录G 插入数据的SQL语句 274