第1篇 基础篇 2
第1章 Java语言和Web应用开发概述 2
1.1 Java语言简介 2
1.1.1 Java语言的特点 2
1.1.2 Java语言的发展现状 4
1.1.3 Java语言的发展前景 5
1.2 Web应用开发简介 6
1.2.1 Web程序的运行机制 6
1.2.2 Web的特点 6
1.2.3 Web技术的发展 7
1.2.4 开发一个Web应用的基本步骤 8
1.3 用Java进行Web应用开发 9
1.3.1 Java Web开发的基本思想 9
1.3.2 Java EE与.NET技术比较 10
1.4 常见面试题 10
1.5 小结 11
1.6 习题 11
第2章 搭建Java Web开发环境 12
2.1 安装JDK 12
2.1.1 下载并安装JDK 12
2.1.2 设置环境变量 13
2.1.3 小试牛刀-HelloWorld 14
2.2 安装集成开发环境Eclipse 15
2.2.1 下载并安装Eclipse 15
2.2.2 Eclipse调试Java程序 16
2.2.3 Eclipse使用技巧 17
2.2.4 下载并安装MyEclipse 18
2.3 安装Tomcat 19
2.3.1 下载并安装Tomcat 19
2.3.2 将Tomcat集成到MyEclipse中 19
2.3.3 管理Tomcat中的Web应用程序 21
2.4 常见面试题 21
2.5 小结 22
2.6 习题 22
第3章 Web客户端技术基础 23
3.1 快速掌握HTML 23
3.1.1 HTML概述 23
3.1.2 第一个HTML页面 24
3.1.3 控制段落和文本的标签 24
3.1.4 注释 26
3.1.5 如何输入特殊字符 27
3.1.6 表格相关标签 28
3.1.7 HTML交互式表单 30
3.1.8 其他常用的标签 34
3.2 CSS基础知识 36
3.2.1 CSS概述 36
3.2.2 如何将CSS嵌入到网页 37
3.2.3 CSS的语法基础 38
3.3 JavaScript基础知识 40
3.3.1 JavaScript概述 40
3.3.2 浏览器中的JavaScript对象模型 40
3.3.3 JavaScript的事件模型 41
3.4 HTML+CSS+JavaScript应用举例 41
3.4.1 二级联动菜单实例 42
3.4.2 表格背景变色实例 45
3.4.3 推拉式菜单 47
3.5 常见面试题 50
3.6 小结 51
3.7 习题 51
第4章 XML基础 52
4.1 XML概述 52
4.1.1 什么是XML 52
4.1.2 XML与HTML的比较 52
4.2 XML基础语法 55
4.2.1 基本组成部分 55
4.2.2 XML声明 56
4.2.3 标签规则 56
4.2.4 注释 58
4.2.5 格式良好的XML 58
4.3 文本类型定义(DTD)概述 59
4.3.1 什么是DTD 59
4.3.2 有效的XML 60
4.4 XML的命名空间 60
4.4.1 〈标签名xmlns:prefixname="URI"〉 61
4.4.2 〈标签名xmlns="URI"〉 61
4.5 常见面试题 61
4.6 小结 62
4.7 习题 62
第5章 Web容器与Servlet技术 63
5.1 Servlet概述 63
5.1.1 什么是Servlet 63
5.1.2 Web容器与Servlet 64
5.1.3 理解Servlet上下文 65
5.1.4 开发Servlet的基本步骤 65
5.1.5 初识Servlet实例:HelloServlet 66
5.2 Servlet生命周期 70
5.2.1 生命周期中的4个基本阶段 70
5.2.2 如何在初始化时获取参数 71
5.3 Servlet获取客户端参数 72
5.3.1 参数传递的方式 72
5.3.2 获取客户端参数 73
5.3.3 用Servelt实现用户登录实例 73
5.4 会话的管理 77
5.4.1 如何跟踪一个用户 77
5.4.2 会话中保存用户资料 78
5.4.3 实例:用户请求次数的统计 78
5.5 请求转发 81
5.5.1 Servlet如何转发HTTP请求 81
5.5.2 请求转发的实例 83
5.6 过滤器 86
5.6.1 什么是过滤器 87
5.6.2 过滤用户非法访问的实例 88
5.7 Web应用程序事件监听器 95
5.7.1 什么是Web应用程序事件 95
5.7.2 访问用户数统计实例 97
5.8 常见面试题 100
5.9 小结 100
5.10 习题 100
第6章 JSP技术基础 102
6.1 JSP简介 102
6.1.1 什么是JSP 102
6.1.2 JSP的运行机制 103
6.2 JSP的基础语法 104
6.2.1 指令元素 104
6.2.2 脚本元素 105
6.2.3 动作元素 106
6.2.4 注释 107
6.2.5 用JSP实现用户登录实例 107
6.3 JSP的一些高级概念 110
6.3.1 JSP中的内置对象及其作用 111
6.3.2 JSP中的4种范围 112
6.3.3 留言板程序实例 113
6.4 常见面试题 119
6.5 小结 120
6.6 习题 121
第7章 在Servlet和JSP中访问数据库 122
7.1 JDBC概述 122
7.1.1 JDBC的工作原理 122
7.1.2 使用JDBC进行数据库操作的基本步骤 123
7.2 下载安装数据库MySQL 125
7.2.1 下载和安装MySQL 125
7.2.2 使用MySQL客户端工具操作数据库 126
7.3 使用JDBC的事务 128
7.3.1 什么是事务 128
7.3.2 如何在JDBC中使用事务 129
7.4 用户的添加、删除、查询、修改实例 130
7.4.1 实例思路 130
7.4.2 实例开发过程 130
7.5 使用Tomcat的数据库连接池 142
7.5.1 什么是数据库连接池 142
7.5.2 如何使用Tomcat提供的数据库连接池 143
7.5.3 Tomcat数据库连接池应用实例 145
7.6 常见面试题 153
7.7 小结 153
7.8 习题 153
第8章 JSP与JavaBean 154
8.1 可重用组件JavaBean简介 154
8.1.1 什么是可重用的组件 154
8.1.2 JavaBean规范 155
8.2 JSP使用JavaBean 156
8.2.1 JSP如何使用JavaBean 156
8.2.2 JSP使用JavaBean的标签详解 159
8.2.3 实例:比较两个数字大小的JavaBean 161
8.3 用JavaBean封装数据库底层处理 164
8.3.1 JavaBean封装数据库操作的基本思想 164
8.3.2 JavaBean封装添加数据操作 165
8.3.3 JavaBean封装删除数据操作 167
8.3.4 JavaBean封装修改数据操作 168
8.3.5 JavaBean封装查询数据操作 169
8.4 JSP+JavaBean实现分页查询 170
8.4.1 如何实现逻辑分页 170
8.4.2 如何实现物理分页 180
8.5 常见面试题 185
8.6 小结 186
8.7 习题 186
第9章 用表达式语言(EL)简化JSP展示数据 187
9.1 EL在JSP中使用的基本思想 187
9.2 EL基本语法 188
9.2.1 “.”和“[]”操作符 188
9.2.2 算术操作符 189
9.2.3 比较操作符 189
9.2.4 逻辑操作符 189
9.2.5 Empty操作符 190
9.3 EL命名变量和隐含对象 190
9.3.1 命名变量 191
9.3.2 隐含对象 191
9.4 实例:用EL展示用户数据 192
9.5 常见面试题 198
9.6 小结 199
9.7 习题 199
第10章 JSP标准标签库(JSTL) 200
10.1 JSP标签库和JSTL概述 200
10.1.1 什么是JSP标签库 200
10.1.2 为什么使用JSTL 202
10.2 JSTL核心标签库(Core) 203
10.2.1 一般用途标签 203
10.2.2 使用迭代标签〈c:forEach〉循环显示数据 205
10.2.3 使用〈c:if〉和〈c:choose〉实现布尔逻辑判断 207
10.2.4 使用〈c:url〉和〈c:param〉生成URL 209
10.3 JSTL数据库标签库(SQL) 210
10.3.1 使〈sql:setDataSource〉准备数据源 210
10.3.2 使用〈sql:query〉标签查询数据 211
10.3.3 使用〈sql:update〉标签更新数据库数据 213
10.3.4 使用〈sql:transaction〉标签来使用数据库事务 214
10.4 JSTL函数标签库(Function) 215
10.4.1 布尔表达式函数 216
10.4.2 整型表达式函数 216
10.4.3 字符修改函数 217
10.5 常见面试题 218
10.6 小结 219
10.7 习题 219
第2篇 进阶篇 222
第11章 使用log4j记录Web应用程序日志 222
11.1 log4j概述 222
11.1.1 Logger组件 222
11.1.2 Appender组件 223
11.1.3 Layout组件 224
11.2 使用log4j 224
11.3 Web应用程序使用log4j实例 226
11.4 常见面试题 239
11.5 小结 239
11.6 习题 239
第12章 Web程序中的常见应用 240
12.1 如何解决中文乱码问题 240
12.1.1 常见字符集 240
12.1.2 中文乱码产生的由来 241
12.1.3 中文乱码问题的解决方案 242
12.1.4 使用过摅器解决中文乱码问题 243
12.2 如何生成图像的缩略图 244
12.2.1 缩略图的作用和原理 244
12.2.2 用缩略图替代原图展示商品的实例 245
12.3 如何生成动态图形验证码 248
12.3.1 图形验证码的作用和原理 248
12.3.2 需要输入图形验证码的用户注册程序实例 249
12.4 如何避免表单的重复提交 255
12.4.1 避免表单重复提交的原理 255
12.4.2 避免用户重复提交表单实例 256
12.5 如何处理会话超时 260
12.5.1 用户会话超时引起的问题 260
12.5.2 用过滤器解决用户会话超时问题 261
12.6 常见面试题 266
12.7 小结 266
12.8 习题 266
第13章 Web应用程序中的安全常识 268
13.1 理解HTTP验证机制 268
13.2 在Tomcat中使用声明式安全机制 269
13.2.1 基本验证的实现 269
13.2.2 基于表单验证的实现 271
13.3 防范SQL注入 274
13.3.1 什么是SQL注入 274
13.3.2 防范SQL注入实例 275
13.4 常见面试题 280
13.5 小结 280
13.6 习题 280
第14章 应用Ajax技术提高用户体验 281
14.1 Ajax概述 281
14.1.1 什么是Ajax技术 281
14.1.2 Ajax的组成技术和工作原理 282
14.1.3 Ajax的优点和缺点 283
14.1.4 我的第一个Ajax程序 283
14.2 开发Ajax的一般步骤 287
14.2.1 用XMLHttpRequest对象发送请求 287
14.2.2 服务器端处理请求并返回结果 288
14.2.3 客户端解析返回结果和做出相应的响应 289
14.3 Ajax应用实例 290
14.3.1 注册信息输入验证 290
14.3.2 三级联动菜单 297
14.4 常见面试题 305
14.5 小结 305
14.6 习题 305
第15章 使用Struts实现MVC 306
15.1 Struts概述 306
15.1.1 MVC模式 306
15.1.2 Struts基础 308
15.1.3 我的第一个Struts应用程序 310
15.2 Struts开发的一般步骤 313
15.2.1 搭建开发环境 313
15.2.2 实现View-JSPs 315
15.2.3 实现Model-ActionForms 317
15.2.4 实现Contorlle-Actions 317
15.2.5 访问Action的URL 318
15.3 Struts标签库 319
15.3.1 Bean常用标签 319
15.3.2 HTML常用标签 320
15.4 Struts高级特性 321
15.4.1 使用多种Action 321
15.4.2 使用多种ActionForm 326
15.5 Struts+JDBC实现学籍管理系统 328
15.5.1 系统设计思路 328
15.5.2 系统开发过程 329
15.6 常见面试题 345
15.7 小结 346
15.8 习题 346
第16章 Hibernate应用详解 348
16.1 Hibernate概述 348
16.1.1 对象关系映射(ORM)背景介绍 348
16.1.2 Hibernate基础 350
16.1.3 我的第一个Hibernate程序 352
16.2 使用Hibernate的一般步骤 356
16.2.1 Hibernate所需的jar文件和配置文件 357
16.2.2 创建POJO实体 358
16.2.3 数据库建表 359
16.2.4 映射配置文件 359
16.2.5 使用Hibernate API操作数据 361
16.3 ID生成策略 363
16.4 关系映射 364
16.4.1 一对一映射 364
16.4.2 一对多映射 366
16.4.3 多对多映射 367
16.5 继承映射 369
16.5.1 单表实现 369
16.5.2 每个子类一张表实现 370
16.6 实体对象的生命周期 372
16.7 Hibernate中的查询功能 373
16.7.1 用get()和load()方法获取单个实体对象 373
16.7.2 HQL查询语言 374
16.7.3 分页查询 376
16.7.4 延迟加载 377
16.8 Struts+Hibernate实现学生选课系统 377
16.8.1 系统设计思路 377
16.8.2 系统开发过程 378
16.9 常见面试题 396
16.10 小结 397
16.11 习题 398
第17章 JavaEE轻量级容器Spring应用 399
17.1 Spring概述 399
17.1.1 Web应用程序分层 400
17.1.2 为什么使用Spring 401
17.1.3 Spring的体系结构 402
17.2 Spring IOC容器 402
17.2.1 理解依赖注入(IOC) 403
17.2.2 依赖注入的方式 403
17.2.3 如何启动IOC容器 406
17.2.4 实例:Spring创建分层Java应用程序 407
17.3 SpringAOP实现 414
17.3.1 理解AOP思想 414
17.3.2 实例:使用AOP记录访问日志 415
17.3.3 在Spring中使用声明式事务 419
17.4 在Web应用程序中整合Struts+Spring+Hibernate 420
17.5 常见面试题 433
17.6 小结 434
17.7 习题 434
第3篇 实战篇 436
第18章 Struts+Spring+Hibernate网上购物系统 436
18.1 系统概述 436
18.2 系统总体设计 437
18.2.1 领域模型设计 437
18.2.2 业务逻辑设计 438
18.2.3 界面设计 439
18.2.4 其他设计 440
18.3 持久层设计 442
18.3.1 数据库设计 442
18.3.2 Hibernate映射策略设计 443
18.3.3 Hibernate数据源的配置 448
18.3.4 数据访问对象(DAO)设计 449
18.4 业务逻辑组织 451
18.4.1 用例分析及实现 451
18.4.2 使用Spring声明式事务 456
18.5 用Struts调用业务层并展示信息 458
18.5.1 Action与ActionForm的设计 458
18.5.2 使用JSP+JSTL+EL展示信息 465
18.6 其他功能实现 475
18.6.1 用Constants类来定义常量 475
18.6.2 用过滤器防止用户非法访问后台 476
18.7 小结 477
附录 网络术语解释 478