第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基础 26
2.1 静态网页制作 26
2.1.1 HTML简介 26
2.1.2 HTML文档的基本结构 26
2.2 HTML中的常见标签 27
2.2.1 文字布局及字体标签 27
2.2.2 列表标签 31
2.3 表格标签 32
2.3.1 表格基本设计 32
2.3.2 合并单元格 34
2.4 链接和图片标签 35
2.5 表单标签 36
2.6 框架 39
2.7 本章小结 41
2.8 课后习题 41
第3章 JavaScript基础 44
3.1 JavaScript简介 44
3.1.1 第一个JavaScript程序 44
3.1.2 JavaScript语法 45
3.2 JavaScript内置对象 48
3.2.1 window对象 48
3.2.2 history对象 51
3.2.3 document对象 51
3.2.4 location对象 54
3.3 本章小结 56
3.4 课后习题 56
第2部分 JSP编程 61
第4章 JSP基本语法 61
4.1 第一个JSP页面 61
4.2 注释 63
4.3 JSP表达式 65
4.4 JSP程序段 66
4.5 JSP声明 67
4.6 URL传值 69
4.7 JSP指令和动作 71
4.7.1 JSP指令 71
4.7.2 JSP动作 75
4.8 本章小结 76
4.9 课后习题 77
第5章 表单开发 79
5.1 认识表单 79
5.1.1 表单的作用 79
5.1.2 定义表单 79
5.2 单一表单元素数据的获取 81
5.2.1 获取文本框中的数据 81
5.2.2 获取密码框中的数据 82
5.2.3 获取多行文本框中的数据 83
5.2.4 获取单选按钮中的数据 84
5.2.5 获取下拉菜单中的数据 85
5.3 捆绑表单元素数据的获取 86
5.3.1 获取复选框中的数据 86
5.3.2 获取多选列表框中的数据 88
5.3.3 获取其他同名表单元素中的数据 89
5.4 隐藏表单 90
5.5 其他问题 93
5.5.1 用JavaScript进行提交 93
5.5.2 中文乱码问题 94
5.6 本章小结 95
5.7 课后习题 95
第6章 JSP访问数据库 98
6.1 JDBC简介 98
6.2 建立ODBC数据源 99
6.3 JDBC操作 101
6.3.1 添加数据 101
6.3.2 删除数据 102
6.3.3 修改数据 103
6.3.4 查询数据 103
6.4 使用PreparedStatement 105
6.5 事务 107
6.6 使用厂商驱动进行数据库连接 108
6.7 本章小结 109
6.8 课后习题 109
第7章 JSP内置对象(1) 112
7.1 认识JSP内置对象 112
7.2 out对象 113
7.3 request对象 113
7.4 response对象 114
7.4.1 利用response对象进行重定向 115
7.4.2 利用response设置HTTP头 119
7.5 Cookie操作 119
7.6 本章小结 122
7.7 课后习题 123
第8章 JSP内置对象(2) 125
8.1 利用session开发购物车 125
8.1.1 购物车需求 125
8.1.2 如何用session开发购物车 127
8.2 session的其他API 129
8.2.1 session的其他操作 129
8.2.2 sessionId 131
8.2.3 利用session保存登录信息 133
8.3 application对象 133
8.4 其他对象 135
8.5 本章小结 135
8.6 课后习题 135
第3部分 Servlet和JavaBean开发 141
第9章 Servlet编程 141
9.1 认识Servlet 141
9.2 编写Servlet 141
9.2.1 建立Servlet 141
9.2.2 Servlet的运行机制 144
9.3 Servlet的生命周期 145
9.4 Servlet与JSP内置对象 146
9.5 设置欢迎页面 147
9.6 在Servlet中读取参数 148
9.6.1 设置参数 148
9.6.2 获取参数 150
9.7 使用过滤器 151
9.7.1 为什么需要过滤器 151
9.7.2 编写过滤器 151
9.7.3 需要注意的问题 155
9.8 异常处理 157
9.9 本章小结 158
9.10 课后习题 158
第10章 JSP和JavaBean 161
10.1 认识JavaBean 161
10.1.1 编写JavaBean 162
10.1.2 特殊JavaBean属性 163
10.2 在JSP中使用JavaBean 164
10.3 JavaBean的范围 167
10.4 DAO和VO 169
10.4.1 为什么需要DAO和VO 169
10.4.2 编写DAO和VO 170
10.4.3 在JSP中使用DAO和VO 171
10.5 本章小结 172
10.6 课后习题 172
第4部分 应用开发与框架 177
第11章 EL和JSTL 177
11.1 认识表达式语言 177
11.1.1 为什么需要表达式语言 177
11.1.2 表达式语言的基本语法 177
11.2 基本运算符 178
11.2.1 .和[]运算符 178
11.2.2 算术运算符 179
11.2.3 关系运算符 179
11.2.4 逻辑运算符 179
11.2.5 其他运算符 180
11.3 数据访问 180
11.3.1 对象的作用域 180
11.3.2 访问JavaBean 181
11.3.3 访问集合 182
11.3.4 其他隐含对象 183
11.4 认识JSTL 183
11.5 核心标签库 184
11.5.1 核心标签库介绍 184
11.5.2 用核心标签进行基本数据操作 185
11.5.3 用核心标签进行流程控制 186
11.6 XML标签库简介 190
11.7 国际化标签库简介 191
11.8 数据库标签库简介 191
11.9 函数标签库简介 192
11.10 本章小结 194
11.11 课后习题 195
第12章 AJAX入门 198
12.1 AJAX概述 198
12.1.1 为什么需要AJAX技术 198
12.1.2 AJAX技术介绍 199
12.2 AJAX开发 201
12.2.1 AJAX核心代码 201
12.2.2 API解释 201
12.3 AJAX简单案例 205
12.3.1 表单验证需求 205
12.3.2 实现方法 205
12.3.3 需要注意的问题 208
12.4 本章小结 208
12.5 课后习题 208
第13章 验证码和文件的上传与下载 210
13.1 使用JSP验证码 210
13.2 验证码开发 211
13.2.1 在JSP上开发验证码 211
13.2.2 实现验证码刷新 214
13.2.3 用验证码进行验证 214
13.3 认识文件上传 215
13.4 实现文件上传 216
13.4.1 文件上传包 216
13.4.2 如何实现文件上传 217
13.5 文件下载 219
13.6 本章小结 222
13.7 课后习题 222
第14章 MVC和Struts2的基本原理 224
14.1 MVC模式 224
14.2 Struts2简介 225
14.3 Struts2的基本原理 226
14.3.1 环境配置 226
14.3.2 Struts2原理 227
14.4 Struts2的基本使用方法 227
14.4.1 导入Struts2 227
14.4.2 编写JSP 229
14.4.3 编写并配置ActionForm 230
14.4.4 编写并配置Action 230
14.4.5 测试 232
14.5 其他问题 233
14.5.1 程序运行流程 233
14.5.2 Action生命周期 233
14.5.3 在Action中访问Web对象 234
14.6 本章小结 235
14.7 课后习题 235
第15章 Web网站安全 237
15.1 URL操作攻击 237
15.1.1 URL操作攻击介绍 237
15.1.2 解决方法 239
15.2 Web跨站脚本攻击 239
15.2.1 跨站脚本攻击的原理 239
15.2.2 跨站脚本攻击的危害 245
15.2.3 防范方法 245
15.3 SQL注入 248
15.3.1 SQL注入的原理 248
15.3.2 SQL注入攻击的危害 251
15.3.3 防范方法 252
15.4 密码保护与验证 253
15.5 本章小结 256
15.6 课后习题 256
第5部分 实训 261
第16章 编程实训1:投票系统 261
16.1 投票系统的案例需求 261
16.2 投票系统分析 261
16.3 开发过程 262
16.3.1 准备数据 262
16.3.2 如何出现进度条 263
16.3.3 编写display.jsp 263
16.3.4 编写vote.jsp 264
16.4 进一步改进 265
16.4.1 存在的问题 265
16.4.2 如何封装数据库连接 265
16.4.3 如何重用代码 266
16.5 思考题:如何防止刷票 267
第17章 编程实训2:投票系统改进版和成绩输入系统 268
17.1 案例1:基于表单的投票系统 268
17.1.1 案例需求 268
17.1.2 系统分析 269
17.1.3 开发过程 269
17.1.4 存在的问题 273
17.2 案例2:成绩输入系统 274
17.2.1 案例需求 274
17.2.2 系统分析 274
17.2.3 开发过程 275
17.2.4 思考 280
第18章 编程实训3:在线交流系统 281
18.1 在线交流系统的案例需求 281
18.2 系统分析 282
18.2.1 页面结构 282
18.2.2 状态保存 283
18.3 开发过程 283
18.3.1 准备数据 283
18.3.2 编写DAO和VO 283
18.3.3 编写loginForm.jsp和loginAction.jsp 285
18.3.4 编写chatForm.jsp和chatAction.jsp 286
18.3.5 编写msgs.jsp 287
18.3.6 编写logoutAction.jsp 288
18.4 思考题:如何进行session检查 289
第19章 编程实训4:购物系统 290
19.1 购物车案例需求 290
19.2 系统分析 291
19.2.1 提取系统中的动作和视图 291
19.2.2 设计动作和视图 291
19.2.3 设计DAO和VO 291
19.2.4 设计数据结构和其他模块 291
19.3 开发过程 292
19.3.1 准备数据 292
19.3.2 编写DAO和VO 292
19.3.3 编写SessionListener.java 294
19.3.4 编写InitServlet.java和showAllBook.jsp 295
19.3.5 编写buyForm.jsp和AddServlet.java 296
19.3.6 编写showCart.jsp和RemoveServlet.java 298
19.4 思考题:如何进行session检查 300
第20章 编程实训5:AJAX的应用 301
20.1 用AJAX实现自动查询 301
20.1.1 需求介绍 301
20.1.2 实现过程 302
20.1.3 类似应用 305
20.2 按需取数据 307
20.2.1 需求介绍 307
20.2.2 实现过程 307
20.2.3 类似应用 310
20.3 页面部分刷新 311
20.3.1 需求介绍 311
20.3.2 实现过程 312
20.3.3 类似应用 312
附录A 配套素材内容与使用说明 315
A.1 配套素材内容 315
A.2 使用实例源代码 315
A.3 在MyEclipse中打开源代码 315