第1章 搭建Java Web开发环境 1
1.1 Web开发背景知识 1
1.1.1 Web访问的基本原理 1
1.1.2 HTTP超文本传输协议 1
1.1.3 静态网页和动态网页 2
1.1.4 Web浏览器和Web服务器 3
1.2 JSP简介 3
1.2.1 什么是JSP 4
1.2.2 JSP的优势 4
1.2.3 JSP的执行顺序 5
1.2.4 一个JSP的简单实例 5
1.3 安装Java环境 6
1.3.1 下载JDK和配置环境变量 6
1.3.2 下载MyEclipse开发工具 8
1.3.3 下载安装Tomcat服务器 10
1.4 小结 12
1.5 习题 12
第2章 JSP基础语法:与编写HTML一样容易 13
2.1 JSP注释 13
2.2 JSP声明 15
2.3 JSP表达式 17
2.4 JSP指令 18
2.4.1 与页面属性相关的page指令 18
2.4.2 引入文件的include指令 19
2.4.3 与标签相关的taglib指令 21
2.5 JSP动作 24
2.5.1 <jsp:include>动作 24
2.5.2 <jsp:forward>动作 26
2.5.3 <jsp:param>动作 27
2.6 小结 31
2.7 习题 31
第3章 JSP内置对象 32
3.1 request对象 32
3.1.1 request对象的常用方法 32
3.1.2 使用request对象接收请求参数 33
3.1.3 请求中文乱码的处理 35
3.1.4 获取请求的头部信息 36
3.1.5 获取主机和客户机的信息 38
3.2 response对象 39
3.2.1 response对象的常用方法 39
3.2.2 设置头信息 39
3.2.3 设置页面重定向 42
3.3 session对象 43
3.3.1 获取session ID 44
3.3.2 用户登录信息的保存 48
3.4 application对象 52
3.4.1 application对象的常用方法 53
3.4.2 获取指定页面的路径 53
3.4.3 设计一个网站计数器 54
3.5 out对象 55
3.5.1 out对象的常用方法 55
3.5.2 out对象的使用示例 55
3.6 page对象 57
3.6.1 page对象的常用方法 57
3.6.2 page对象的使用示例 58
3.7 config对象 59
3.7.1 config对象的常用方法 59
3.7.2 config对象的使用示例 59
3.8 小结 60
3.9 习题 61
第4章 Servlet技术 62
4.1 Servlet是什么 62
4.2 Servlet的技术特点 63
4.3 Servlet的生命周期 64
4.4 编写和部署Servlet 67
4.4.1 编写Servlet类 67
4.4.2 部署Servlet类 71
4.5 Servlet与JSP的比较 72
4.6 小结 73
4.7 习题 74
第5章 请求与响应 75
5.1 从容器到HtipServlet 75
5.1.1 Web容器用来做什么 75
5.1.2 令人茫然的doXXX()方法 77
5.2 关于HttpServletRequest对象 78
5.2.1 使用getReader()、gefInputStream()读取Body内容 78
5.2.2 使用getPart()、getParts()取得上传文件 82
5.2.3 使用RequestDispatcher调派请求 86
5.3 关于HttpServletResponse 91
5.3.1 使用getWriter()输出字符 91
5.3.2 使用getOutputStream()输出二进制字符 94
5.3.3 使用sendRedirect()、sendError()方法 95
5.4 综合练习 98
5.4.1 实现网站注册功能 99
5.4.2 实现网站登录功能 104
5.5 小结 107
5.6 习题 107
第6章 会话管理 108
6.1 会话管理的基本原理 108
6.1.1 使用隐藏域 108
6.1.2 使用Cookie 108
6.1.3 使用URL重写 109
6.2 HttpSession会话管理 110
6.2.1 使用HttpSession管理会话 110
6.2.2 HttpSession管理会话的原理 112
6.2.3 HttpSession与URL重写 113
6.2.4 HttpSession中禁用Cookie 113
6.2.5 HttpSession的生命周期 114
6.2.6 HttpSession的有效期 115
6.3 HttpSession会话管理实例演示 115
6.4 小结 117
6.5 习题 117
第7章 Servlet进阶API、监听器与过滤器 118
7.1 Servlet进阶API 118
7.1.1 Servlet、ServletConfig与GenericServlet 118
7.1.2 使用ServletConfig 121
7.1.3 使用ServletContext 124
7.2 应用程序事件、监听器 126
7.2.1 ServletContext事件、监听器 127
7.2.2 HttpSession事件监听器 130
7.2.3 HttpServletRequest事件、监听器 130
7.3 过滤器 137
7.3.1 过滤器的概念 137
7.3.2 实现与设置过滤器 138
7.3.3 请求封装器 140
7.3.4 响应封装器 143
7.4 异步处理 152
7.4.1 AsyncContext简介 152
7.4.2 模拟服务器推送 155
7.5 小结 159
7.6 习题 159
第8章 MySQL数据库开发 160
8.1 MySQL数据库入门 160
8.1.1 MySQL的版本特点 160
8.1.2 MySQL的安装和配置 161
8.2 启动MySQL服务并登录数据库 168
8.2.1 启动MySQL服务 168
8.2.2 登录MySQL数据库 169
8.3 MySQL数据库的基本操作 171
8.3.1 创建数据库 171
8.3.2 删除数据库 172
8.3.3 创建数据库表 173
8.3.4 修改数据库表 174
8.3.5 修改数据库表的字段名 174
8.3.6 删除数据表 175
8.4 MySQL数据库的数据管理 176
8.4.1 插入数据 176
8.4.2 修改数据 176
8.4.3 删除数据 177
8.5 小结 178
8.6 习题 178
第9章 JSP与Java Bean 180
9.1 Java Bean的基本概念 180
9.2 JSP中使用Bean 181
9.3 访问Bean属性 183
9.3.1 设置属性:<jsp:setProperty> 183
9.3.2 取得属性:<jsp:getProperty> 188
9.4 Bean的作用域 190
9.5 用户登录验证 195
9.6 DAO设计模式 199
9.6.1 DAO设计模式简介 199
9.6.2 DAO命名规则 200
9.6.3 DAO开发 200
9.6.4 JSP调用DAO 207
9.7 小结 210
9.8 习题 210
第10章 EL标签:给JSP减负 211
10.1 EL标签语法 211
10.2 EL标签的功能 212
10.3 EL标签的操作符 215
10.4 EL标签的隐含变量 217
10.4.1 隐含变量pageScope、requestScope、sessionScope、applicationScope 217
10.4.2 隐含变量param、paramValues 217
10.4.3 其他变量 218
10.5 禁用EL标签 220
10.5.1 在整个Web应用中禁用 220
10.5.2 在单个页面中禁用 221
10.5.3 在页面中禁用个别表达式 221
10.6 小结 221
10.7 习题 221
第11章 JSTL标签库 222
11.1 JSTL标签概述 222
11.1.1 JSTL的来历 222
11.1.2 一个标签实例带你入门 223
11.2 JSTL的core标签库 224
11.2.1 <c:set>标签与<c:out>标签 224
11.2.2 <c:if>标签 224
11.2.3 <c:choose>标签、<c:when>标签、<c:otherwise>标签 225
11.2.4 <c:set>标签 227
11.2.5 <c:forEach>标签 227
11.2.6 <c:forTokens>标签 228
11.2.7 <c:remove>标签 229
11.2.8 <c:catch>标签 229
11.2.9 <c:import>标签与<c:param>标签 229
11.2.10 <c:redirect>标签 230
11.2.11 <c:url>标签 230
11.3 JSTL的fmt标签库 231
11.3.1 国际化标签 231
11.3.2 消息标签 231
11.3.3 数字和日期格式化标签 234
11.4 JSTL的fn标签库 237
11.4.1 fn:contains()函数与fn:containsIgnoreCase()函数 237
11.4.2 fn:startsWith()函数与fn:endsWith()函数 238
11.4.3 fn:escapeXml()函数 238
11.4.4 fn:indexOf()函数与fn:length()函数 238
11.4.5 fn:split()函数与fn:join()函数 239
11.5 JSTL的SQL标签库 239
11.5.1 <sql:setDateSource>标签 240
11.5.2 <sql:query>标签 240
11.5.3 <sql:update>标签 241
11.5.4 <sql:dateParam>标签与<sql:param>标签 241
11.5.5 <sql:transaction>标签 243
11.6 JSTL的XML标签库 244
11.6.1 <x:parse>标签 244
11.6.2 <x:out>标签 245
11.6.3 <x:forEach>标签 245
11.6.4 <x:if>标签 246
11.6.5 <x:choose>标签、<x:when>标签、<x:otherwise>标签 246
11.6.6 <x:set>标签 246
11.6.7 <x:transform>标签 246
11.7 小结 247
11.8 习题 247
第12章 自定义标签 248
12.1 编写自定义标签 248
12.1.1 版权标签 248
12.1.2 tld标签库描述文件 250
12.1.3 TagSupport类简介 252
12.1.4 带参数的自定义标签 253
12.1.5 带标签体的自定义标签 256
12.1.6 多次执行的循环标签 259
12.1.7 带动态属性的自定义标签 261
12.2 嵌套的自定义标签 262
12.2.1 实例:表格标签 262
12.2.2 嵌套标签的配置 264
12.2.3 嵌套标签的运行效果 265
12.3 JSP 2.X标签 266
12.4 小结 268
12.5 习题 269
第13章 JDBC详解 270
13.1 JDBC简介 270
13.1.1 查询实例:列出人员信息 270
13.1.2 各种数据库的连接 273
13.2 MySQL的乱码解决方案 274
13.2.1 从控制台修改编码 274
13.2.2 从配置文件修改编码 275
13.2.3 利用图形界面工具修改编码 276
13.2.4 在URL中指定编码方式 276
13.3 JDBC基本操作:CRUD 276
13.3.1 查询数据库 277
13.3.2 插入人员信息 277
13.3.3 注册数据库驱动 282
13.3.4 获取自动插入的ID 282
13.3.5 删除人员信息 282
13.3.6 修改人员信息 283
13.3.7 使用PreparedStatement 289
13.3.8 利用Statement与PreparedStatement批处理SQL 290
13.4 结果集的处理 292
13.4.1 查询多个结果集 292
13.4.2 可以滚动的结果集 292
13.4.3 带条件的查询 292
13.4.4 ResultSetMetaData元数据 297
13.4.5 直接显示中文列名 298
13.5 小结 299
13.6 习题 299
第14章 XML概述 300
14.1 初识XML 300
14.1.1 什么是XML 300
14.1.2 XML的用途 301
14.1.3 XML的技术架构 301
14.1.4 XML开发工具 302
14.2 XML基本语法 303
14.3 JDK中的XML API 306
14.4 最常见的XML解析模型 307
14.4.1 DOM解析 307
14.4.2 SAX解析 310
14.4.3 DOM4i解析 312
14.5 XML与Java类映射JAXB 315
14.5.1 什么是XML与Java类映射 315
14.5.2 JAXB的工作原理 316
14.5.3 将Java对象转化成XML 316
14.5.4 将XML转化为Java对象 318
14.5.5 更为复杂的映射 319
14.6 小结 322
14.7 习题 322
第15章 资源国际化 324
15.1 资源国际化简介 324
15.2 资源国际化编程 324
15.2.1 资源国际化示例 325
15.2.2 资源文件编码 326
15.2.3 显示所有Locale代码 327
15.2.4 带参数的资源 329
15.2.5 ResourceBundle类 330
15.2.6 Servlet的资源国际化 331
15.2.7 显示所有Locale的数字格式 332
15.2.8 显示全球时间 334
15.3 小结 336
15.4 习题 336
第16章 家校通门户网站 337
16.1 网页首页的布局 337
16.2 导入样式页面 338
16.3 显示页面头内容 339
16.4 用户登录页面 339
16.5 帮助页面 340
16.6 网页主体内容 340
16.7 网页公告内容 342
16.8 友情链接页面 343
16.9 网页底部的版权信息内容 344
16.10 家校通门户网站预览效果 344
16.11 小结 345
第17章 在线购物系统 346
17.1 系统需求分析 346
17.2 系统总体架构 347
17.3 数据库设计 348
17.3.1 E-R图 348
17.3.2 数据物理模型 348
17.4 系统详细设计 349
17.4.1 系统包的介绍 349
17.4.2 系统的关键技术 350
17.4.3 过滤器 355
17.5 系统首页与公共页面 356
17.6 用户登录模块 359
17.7 用户管理模块 360
17.7.1 用户注册 360
17.7.2 用户信息修改 363
17.7.3 用户信息查看 366
17.7.4 用户密码修改 367
17.8 购物车模块 368
17.8.1 添加购物车 369
17.8.2 删除购物车 372
17.8.3 查看购物车 372
17.8.4 修改购物车 374
17.9 商品模块 377
17.9.1 查看商品列表 377
17.9.2 查看单个商品 381
17.10 支付模块 382
17.10.1 支付商品 382
17.10.2 查看已支付商品 383
17.10.3 支付中的页面 384
17.11 小结 386