第1部分 入门 3
第1章 Java Web开发环境配置 3
1.1 B/S结构 3
1.2 服务器安装 5
1.2.1 服务器的作用 5
1.2.2 获取服务器软件 5
1.2.3 安装服务器 6
1.2.4 测试服务器 9
1.2.5 配置服务器 10
1.3 IDE安装 11
1.3.1 IDE的作用 11
1.3.2 获取IDE软件 11
1.3.3 安装IDE 12
1.3.4 配置IDE 14
1.4 第一个Web项目 17
1.4.1 创建一个Web项目 17
1.4.2 目录结构 19
1.4.3 部署 21
1.4.4 常见错误 22
1.5 本章小结 24
1.6 上机习题 24
第2章 HTML基础 25
2.1 静态网页制作 25
2.1.1 HTML简介 25
2.1.2 HTML文档的基本结构 25
2.2 HTML中的常见标签 26
2.2.1 文字布局及字体标签 26
2.2.2 列表标签 30
2.3 表格标签 31
2.3.1 表格基本设计 31
2.3.2 合并单元格 33
2.4 链接和图片标签 34
2.5 表单标签 35
2.6 框架 38
2.7 本章小结 40
2.8 上机习题 40
第3章 JavaScript基础 42
3.1 JavaScript简介 42
3.1.1 第一个JavaScript程序 42
3.1.2 JavaScript语法 43
3.2 JavaScript内置对象 46
3.2.1 window对象 46
3.2.2 history对象 49
3.2.3 document对象 49
3.2.4 location对象 52
3.3 本章小结 54
3.4 上机习题 54
第2部分 JSP编程 57
第4章 JSP基本语法 57
4.1 第一个JSP页面 57
4.2 注释 59
4.3 JSP表达式 61
4.4 JSP程序段 62
4.5 JSP声明 63
4.6 URL传值 65
4.7 JSP指令和动作 67
4.7.1 JSP指令 67
4.7.2 JSP动作 71
4.8 本章小结 72
4.9 上机习题 73
第5章 表单开发 74
5.1 认识表单 74
5.1.1 表单的作用 74
5.1.2 定义表单 74
5.2 单一表单元素数据的获取 76
5.2.1 获取文本框中的数据 76
5.2.2 获取密码框中的数据 77
5.2.3 获取多行文本框中的数据 78
5.2.4 获取单选按钮中的数据 79
5.2.5 获取下拉菜单中的数据 80
5.3 捆绑表单元素数据的获取 81
5.3.1 获取复选框中的数据 81
5.3.2 获取多选列表框中的数据 83
5.3.3 获取其他同名表单元素中的数据 84
5.4 隐藏表单 85
5.5 其他问题 88
5.5.1 用JavaScript进行提交 88
5.5.2 中文乱码问题 89
5.6 本章小结 90
5.7 上机习题 90
第6章 JSP访问数据库 91
6.1 JDBC简介 91
6.2 建立ODBC数据源 92
6.3 JDBC操作 94
6.3.1 添加数据 94
6.3.2 删除数据 95
6.3.3 修改数据 96
6.3.4 查询数据 96
6.4 使用PreparedStatement 98
6.5 事务 100
6.6 使用厂商驱动进行数据库连接 101
6.7 本章小结 102
6.8 上机习题 102
第7章 JSP内置对象(1) 103
7.1 认识JSP内置对象 103
7.2 out对象 104
7.3 request对象 104
7.4 response对象 105
7.4.1 利用response对象进行重定向 106
7.4.2 利用response设置HTTP头 110
7.5 Cookie操作 110
7.6 本章小结 113
7.7 上机习题 114
第8章 JSP内置对象(2) 115
8.1 利用session开发购物车 115
8.1.1 购物车需求 115
8.1.2 如何用session开发购物车 117
8.2 session其他API 119
8.2.1 session的其他操作 119
8.2.2 sessionId 121
8.2.3 利用session保存登录信息 123
8.3 application对象 123
8.4 其他对象 125
8.5 本章小结 125
8.6 上机习题 125
第3部分 Servlet和JavaBean开发 129
第9章 Servlet编程 129
9.1 认识Servlet 129
9.2 编写Servlet 129
9.2.1 建立Servlet 129
9.2.2 Servlet运行机制 132
9.3 Servlet生命周期 133
9.4 Servlet与JSP内置对象 134
9.5 设置欢迎页面 135
9.6 在Servlet中读取参数 136
9.6.1 设置参数 136
9.6.2 获取参数 138
9.7 使用过滤器 139
9.7.1 为什么需要过滤器 139
9.7.2 编写过滤器 139
9.7.3 需要注意的问题 143
9.8 异常处理 145
9.9 本章小结 146
9.10 上机习题 146
第10章 JSP和JavaBean 147
10.1 认识JavaBean 147
10.1.1 编写JavaBean 148
10.1.2 特殊JavaBean属性 149
10.2 在JSP中使用JavaBean 150
10.3 JavaBean的范围 153
10.4 DAO和VO 155
10.4.1 为什么需要DAO和VO 155
10.4.2 编写DAO和VO 156
10.4.3 在JSP中使用DAO和VO 157
10.5 本章小结 158
10.6 上机习题 158
第4部分 应用开发与框架 161
第11章 EL和JSTL 161
11.1 认识表达式语言 161
11.1.1 为什么需要表达式语言 161
11.1.2 表达式语言基本语法 161
11.2 基本运算符 162
11.2.1 .和[]运算符 162
11.2.2 算术运算符 163
11.2.3 关系运算符 163
11.2.4 逻辑运算符 163
11.2.5 其他运算符 164
11.3 数据访问 164
11.3.1 对象的作用域 164
11.3.2 访问JavaBean 165
11.3.3 访问集合 166
11.3.4 其他隐含对象 167
11.4 认识JSTL 167
11.5 核心标签库 168
11.5.1 核心标签库介绍 168
11.5.2 用核心标签进行基本数据操作 169
11.5.3 用核心标签进行流程控制 170
11.6 XML标签库简介 174
11.7 国际化标签库简介 175
11.8 数据库标签库简介 175
11.9 函数标签库简介 176
11.10 本章小结 178
11.11 上机习题 179
第12章 AJAX入门 180
12.1 AJAX概述 180
12.1.1 为什么需要AJAX技术 180
12.1.2 AJAX技术介绍 181
12.2 AJAX开发 183
12.2.1 AJAX核心代码 183
12.2.2 API解释 183
12.3 AJAX简单案例 187
12.3.1 表单验证需求 187
12.3.2 实现方法 187
12.3.3 需要注意的问题 190
12.4 本章小结 190
12.5 上机习题 190
第13章 验证码和文件上传下载 191
13.1 使用JSP验证码 191
13.2 验证码开发 192
13.2.1 在JSP上实现验证码 192
13.2.2 实现验证码刷新 195
13.2.3 用验证码进行验证 195
13.3 认识文件上传 196
13.4 实现文件上传 197
13.4.1 文件上传包 197
13.4.2 如何实现文件上传 198
13.5 文件下载 200
13.6 本章小结 203
13.7 上机习题 203
第14章 MVC和Struts2基本原理 204
14.1 MVC模式 204
14.2 Struts2简介 205
14.3 Struts2的基本原理 206
14.3.1 环境配置 206
14.3.2 Struts2原理 207
14.4 Struts2的基本使用方法 207
14.4.1 导入Struts2 207
14.4.2 编写JSP 209
14.4.3 编写并配置ActionForm 210
14.4.4 编写并配置Action 210
14.4.5 测试 212
14.5 其他问题 213
14.5.1 程序运行流程 213
14.5.2 Action生命周期 213
14.5.3 在Action中访问Web对象 214
14.6 本章小结 215
14.7 上机习题 215
第15章 Web网站安全 216
15.1 URL操作攻击 216
15.1.1 URL操作攻击介绍 216
15.1.2 解决方法 218
15.2 Web跨站脚本攻击 218
15.2.1 跨站脚本攻击的原理 218
15.2.2 跨站脚本攻击的危害 224
15.2.3 防范方法 224
15.3 SQL注入 227
15.3.1 SQL注入的原理 227
15.3.2 SQL注入攻击的危害 230
15.3.3 防范方法 231
15.4 密码保护与验证 232
15.5 本章小结 235
第5部分 实训 239
第16章 编程实训1——投票系统 239
16.1 投票系统的案例需求 239
16.2 投票系统分析 239
16.3 开发过程 240
16.3.1 准备数据 240
16.3.2 如何出现进度条 241
16.3.3 编写display.jsp 241
16.3.4 编写vote.jsp 242
16.4 进一步改进 243
16.4.1 存在的问题 243
16.4.2 如何封装数据库连接 243
16.4.3 如何重用代码 244
16.5 思考题:如何防止刷票 245
第17章 编程实训2——投票系统改进版和成绩输入系统 246
17.1 案例1——基于表单的投票系统 246
17.1.1 案例需求 246
17.1.2 投票系统分析 247
17.1.3 开发过程 247
17.1.4 存在的问题 251
17.2 案例2——成绩输入系统 252
17.2.1 案例需求 252
17.2.2 系统分析 252
17.2.3 开发过程 253
17.2.4 思考 258
第18章 编程实训3——在线交流系统 259
18.1 在线交流系统的案例需求 259
18.2 系统分析 260
18.2.1 页面结构 260
18.2.2 状态保存 261
18.3 开发过程 261
18.3.1 准备数据 261
18.3.2 编写DAO和VO 261
18.3.3 编写loginForm.jsp和loginAction.jsp 263
18.3.4 编写chatForm.jsp和chatAction.jsp 264
18.3.5 编写msgs.jsp 265
18.3.6 编写logoutAction.jsp 266
18.4 思考题——如何进行session检查 267
第19章 编程实训4——购物系统 268
19.1 购物车案例需求 268
19.2 系统分析 269
19.2.1 提取系统中的动作和视图 269
19.2.2 设计动作和视图 269
19.2.3 设计DAO和VO 269
19.2.4 设计数据结构和其他模块 269
19.3 开发过程 270
19.3.1 准备数据 270
19.3.2 编写DAO和VO 270
19.3.3 编写SessionListener.java 272
19.3.4 编写InitServlet.java和showAllBook.jsp 273
19.3.5 编写buyForm.jsp和AddServlet.java 274
19.3.6 编写showCart.jsp和RemoveServlet.java 276
19.4 思考题——如何进行session检查 278
第20章 编程实训5——AJAX应用 279
20.1 用AJAX实现自动查询 279
20.1.1 需求介绍 279
20.1.2 实现过程 280
20.1.3 类似应用 283
20.2 按需取数据 285
20.2.1 需求介绍 285
20.2.2 实现过程 285
20.2.3 类似应用 288
20.3 页面部分刷新 289
20.3.1 需求介绍 289
20.3.2 实现过程 290
20.3.3 类似应用 291
附录A 配套素材内容与使用说明 294
A.1 配套素材内容 294
A.2 使用实例源代码 294
A.3 在MyEclipse中打开源代码 294