第1章 构建Java Web应用 1
1.1 Web应用概述 1
1.1.1 什么是Web应用 1
1.1.2 Web应用是如何运行的 1
1.1.3 Web应用关注的内容 2
1.2 流行的Web应用开发技术 3
1.3 Web应用的常用功能 4
1.4 Java Web应用的核心技术 5
1.5 Web应用的文档结构 7
1.6 Web应用的运行环境及其搭建 8
1.6.1 运行环境 8
1.6.2 安装JDK 9
1.6.3 安装Tomcat服务器 12
1.7 创建Web应用 16
1.7.1 创建Web应用 16
1.7.2 创建WEB-INF文件夹 16
1.7.3 创建web.xml文档 16
1.7.4 创建classes文件夹 16
1.7.5 创建lib文件夹 17
1.7.6 创建欢迎界面 17
1.7.7 启动服务器 18
1.7.8 访问JSP程序 19
1.8 JSP的运行原理 20
1.9 网上书店的基本功能 21
小结 21
习题1 21
实训1:创建Web应用 22
第2章 输入 23
2.1 用户注册界面 23
2.1.1 功能描述 23
2.1.2 运行效果 24
2.1.3 源代码 25
2.2 常用表单元素 32
2.2.1 单行文本框 33
2.2.2 密码框 33
2.2.3 单选按钮 34
2.2.4 复选框 34
2.2.5 下拉框 35
2.2.6 文本域 36
2.2.7 重置按钮 36
2.2.8 提交按钮 37
2.3 使用form元素 37
2.3.1 使用form元素封装要提交的信息 37
2.3.2 同一个页面中的多个form 37
2.4 对输入信息进行验证 38
2.4.1 JavaScript语言 38
2.4.2 使用表单数据 39
2.4.3 调用验证方法 39
2.4.4 提示用户信息 39
2.4.5 常用的方法 39
2.4.6 正则表达式 43
2.5 设置页面的编码方式 45
2.5.1 实现代码 45
2.5.2 page指令 46
小结 47
习题2 48
实训2:图书信息 49
第3章 输出 50
3.1 注册信息确认界面及其运行效果 50
3.1.1 功能描述 50
3.1.2 运行效果 50
3.1.3 程序代码 51
3.2 在界面上输出一个表格 56
3.3 显示用户输入信息 57
3.3.1 代码 57
3.3.2 表达式基本语法格式 58
3.3.3 运算符 58
3.3.4 隐含对象 59
3.3.5 变量的作用范围 60
3.4 处理乱码 61
3.4.1 处理乱码的代码 61
3.4.2 编写标签库 61
3.4.3 部署标签库 63
3.4.4 声明标签库 63
3.4.5 使用标签库中的标签 64
3.4.6 相关知识 64
3.5 动态赋值 65
3.5.1 <c:if>标签的使用 65
3.5.2 基本表单元素赋值 65
3.5.3 单选按钮的赋值 65
3.5.4 下拉框的赋值 66
3.5.5 多行文本框的赋值 66
3.6 其他知识点 67
3.6.1 使用隐藏域传递值 67
3.6.2 在同一个表单中有多个处理文件 67
3.7 相关知识点 67
3.7.1 使用<c:out>输出 68
3.7.2 使用表达式输出 68
3.7.3 使用脚本输出 68
小结 69
习题3 69
实训3:图书信息验证 70
第4章 登录 71
4.1 用户登录功能及效果 71
4.1.1 功能描述 71
4.1.2 运行效果 72
4.1.3 思路分析 72
4.2 创建登录界面 73
4.3 创建处理文件 75
4.3.1 判断用户的信息是否正确 75
4.3.2 保存用户信息 75
4.3.3 使用<jsp:forward>完成跳转 77
4.3.4 使用<jsp:include>完成跳转 77
4.4 创建登录成功的界面 79
4.5 创建登录失败的界面 79
4.6 相关知识点 80
小结 80
习题4 81
实训4:登录过程模拟 81
第5章 系统业务逻辑 83
5.1 JavaBean 83
5.1.1 什么是JavaBean 83
5.1.2 编写JavaBean 84
5.1.3 编译JavaBean 85
5.2 部署 85
5.3 使用JavaBean 86
5.3.1 使用<jsp:useBean> 86
5.3.2 使用<jsp:setProperty> 87
5.3.3 使用<jsp:getProperty> 88
5.3.4 调用业务方法 88
5.3.5 最佳实践 90
5.4 在Java代码中访问已有的JavaBean 91
小结 91
习题5 92
实训5:编写图书信息JavaBean 92
第6章 系统流程控制 94
6.1 Servlet 94
6.1.1 什么是Servlet 94
6.1.2 Servlet的主要方法 95
6.1.3 编写简单的Servlet 95
6.1.4 Servlet运行原理 98
6.2 使用Servlet完成控制 99
6.2.1 接收用户的输入信息 99
6.2.2 调用业务方法 100
6.2.3 使用request存储执行的结果 100
6.2.4 选择界面对用户进行响应 100
6.2.5 完整的代码 101
6.3 使用MVC模式 102
6.3.1 分层 102
6.3.2 传值 103
6.3.3 MVC模式在Java Web中的应用 105
6.3.4 如何实现MVC模式 107
6.4 信息存储 108
小结 109
习题6 110
实训6:编写图书信息添加Servlet 111
第7章 动态显示信息 112
7.1 目标及演示 112
7.1.1 功能描述 112
7.1.2 运行效果 113
7.1.3 相关文件 113
7.1.4 思路分析 113
7.2 使用MySQL 114
7.2.1 MySQL数据库的下载 114
7.2.2 MySQL数据库的安装 114
7.2.3 MySQL数据库的常用操作 119
7.3 编写UserBean 124
7.3.1 JDBC的基本用法 124
7.3.2 编写表示用户信息的JavaBean 128
7.3.3 编写查询所有用户的方法 130
7.3.4 采用数据库连接池 132
7.4 编写userlist.jsp 136
7.4.1 实现代码 137
7.4.2 <c:forEach>标签 138
7.4.3 使用标准标签库中的SQL标签 139
7.5 创建控制器 144
7.5.1 代码 144
7.5.2 配置Servlet 146
小结 146
习题7 147
实训7:图书信息查询 148
第8章 分页显示 150
8.1 用户管理的分页显示 150
8.1.1 功能描述 150
8.1.2 运行效果 150
8.1.3 思路分析 152
8.2 在界面完成分页控制 153
8.2.1 修改UserBean.java 153
8.2.2 修改FindAllUserServlet 155
8.2.3 修改userlist.jsp 157
8.3 在UserBean中完成分页控制 159
8.3.1 修改UserBean.java 159
8.3.2 修改FindAllUserServlet 163
8.3.3 修改userlist.jsp 163
8.4 共享连接数据库的代码 164
8.4.1 编写DBBean 164
8.4.2 使用DBBean 166
小结 167
习题8 167
实训8:图书信息分页显示 168
第9章 信息添加 169
9.1 信息添加功能演示 169
9.1.1 功能描述 169
9.1.2 功能演示 169
9.1.3 思路分析 170
9.2 更新UserBean中的代码 171
9.2.1 动态SQL语句的编写 171
9.2.2 添加根据用户ID判断用户是否存在的方法 172
9.2.3 添加add方法 173
9.3 编写添加界面addUser.jsp 174
9.4 修改用户信息列表userlist.jsp 174
9.5 编写添加用户的Servlet 175
9.6 使用PrepraredStatement 178
小结 179
习题9 180
实训9:图书信息添加 180
第10章 修改和删除 181
10.1 修改功能和删除功能演示 181
10.1.1 功能描述 181
10.1.2 运行效果 181
10.1.3 思路分析 183
10.2 修改用户信息查看界面 184
10.2.1 添加功能按钮 184
10.2.2 传递用户ID 186
10.2.3 信息删除确认 187
10.2.4 添加提示信息 187
10.2.5 完整代码 188
10.3 修改UserBean的代码 190
10.3.1 添加根据ID查询用户信息的方法 190
10.3.2 添加修改信息的方法 192
10.3.3 添加信息删除的方法 193
10.4 修改功能中查询信息的Servlet 194
10.5 修改信息的Servlet 195
10.6 删除信息的Servlet 197
10.7 信息修改界面 199
10.8 简单事务处理 199
小结 200
习题10 200
实训10:图书信息修改和删除 201
第11章 国际化 202
11.1 目标演示 202
11.1.1 功能描述 202
11.1.2 运行效果 202
11.1.3 思路分析 203
11.2 编写资源文件 204
11.2.1 资源文件内容的确定 204
11.2.2 资源文件的格式 205
11.2.3 转换成Unicode编码 206
11.2.4 资源文件的名字 206
11.2.5 资源文件的部署 207
11.2.6 用户管理的资源文件 207
11.3 实现用户管理界面的国际化 211
11.3.1 设置所使用的语言 212
11.3.2 确定要访问的资源文件 212
11.3.3 访问资源文件中的内容 213
11.3.4 添加语言选择功能 215
11.3.5 修改后的文件 215
11.4 数字的格式化 218
11.4.1 格式化数字 218
11.4.2 转换数字 219
11.5 日期的格式化 219
11.5.1 格式化日期 219
11.5.2 转换日期 221
小结 221
习题11 221
实训11:图书管理界面的国际化 222
第12章 对系统异常进行处理 223
12.1 异常处理概述 223
12.2 Java代码中的异常处理 224
12.2.1 不好的编程习惯造成的异常 224
12.2.2 特殊类型的异常 224
12.2.3 方法调用产生的异常 225
12.3 JSP页面中的异常处理 226
12.3.1 使用<c:catcb>进行异常处理 226
12.3.2 为页面指定异常处理文件 227
12.3.3 通过web.xml进行配置 227
小结 228
习题12 228
实训12:图书管理功能的异常处理 229
第13章 系统安全控制 230
13.1 完善登录功能 230
13.1.1 功能描述 230
13.1.2 思路分析 230
13.1.3 修改登录控制器Servlet 231
13.2 用户管理的安全控制 232
13.2.1 功能描述 232
13.2.2 运行效果 232
13.2.3 思路分析 233
13.2.4 操作session 233
13.2.5 修改登录处理的代码 234
13.2.6 在用户添加界面增加控制 236
13.2.7 对控制器进行安全控制 236
13.3 使用过滤器进行安全控制 237
13.3.1 Servlet过滤器简介 237
13.3.2 创建Servlet过滤器 237
13.3.3 配置过滤器 239
13.4 采用专门的安全控制页面 240
13.4.1 编写专门文件 240
13.4.2 修改图书添加界面代码 240
13.4.3 <jsp:include>标签和<%@include%>指令 241
13.5 集中的安全控制 241
13.6 页面的局部安全要求 242
13.7 增加图形验证码 242
13.7.1 图形验证码的作用 243
13.7.2 图形验证码的实现原理 243
小结 243
习题13 243
实训13:解决网站的安全问题 244
第14章 综合实训:购物车管理和订单管理 245
14.1 实训的目标 245
14.2 存储结构 245
14.3 实训指导 246
14.3.1 购物车的基本原理 246
14.3.2 购物车管理 249
14.3.3 订单管理 254
小结 256
第15章 程序调试 257
15.1 错误类型 257
15.1.1 编译错误 257
15.1.2 运行时错误 258
15.1.3 逻辑错误 258
15.1.4 特殊错误 258
15.2 常见编译错误 258
15.2.1 Java文件中的常见编译错误 258
15.2.2 JSP文件中的常见编译错误 260
15.3 特殊类型的错误 261
15.3.1 该页无法显示 261
15.3.2 找不到文件 262
15.3.3 文件修改后不起作用 263
15.4 运行时错误和逻辑错误的调试 263
附录A 常用功能 265
A.1 字符串 265
A.2 Stringbuffer 266
A.3 日期及其格式化 267
A.4 数字与字符串之间的转换 269
A.5 Vector类 270
A.6 哈希表 271
附录B 相关API 272
B.1 HttpServletRequest 272
B.2 HttpServletResponse 273
B.3 HttpSession 275
B.4 ServletContext 276
B.5 Cookie 277
附录C 知识点索引 279
C.1 Web概述与环境 279
C.2 HTML与JavaScript 279
C.3 指令和动作 280
C.4 JavaBean及其应用 281
C.5 表达式语言 281
C.6 标准标签库 281
C.7 JDBC 282
C.8 MVC模式 283