第1章 Java Web入门知识 1
1.1 Java Web简介 1
1.2 搭建开发环境 2
1.2.1 安装JDK 2
1.2.2 安装Tomcat 8
1.2.3 安装MyEclipse 12
1.3 实验指导1-1:配置JDK环境变量 20
1.4 实验指导1-2:创建第一个JSP程序 21
1.5 实验指导1-3:使用MyEclipse开发JSP程序 22
1.6 Java Web开发模式 28
1.6.1 单一JSP模式 28
1.6.2 JSP+JavaBean模式 28
1.6.3 JSP+JavaBean+Servlet模式 29
1.6.4 Struts框架模式 30
1.6.5 J2EE模式实现 31
思考与练习 32
第2章 JSP语法 33
2.1 JSP页面元素 33
2.2 JSP注释 35
2.2.1 HTML注释 35
2.2.2 隐藏注释 35
2.2.3 代码注释 36
2.3 脚本元素 36
2.3.1 Java脚本 37
2.3.2 表达式 38
2.3.3 声明 39
2.4 指令元素 40
2.4.1 page指令 41
2.4.2 taglib指令 43
2.4.3 include指令 44
2.5 动作元素 47
2.5.1 〈jsp:include〉动作 47
2.5.2 〈jsp:forward〉动作 49
2.5.3 〈jsp:param〉动作 51
2.5.4 〈jsp:useBean〉、 〈jsp:setProperty〉和〈jsp:getProperty〉 52
2.6 实验指导2-1:会员注册 55
思考与练习 59
第3章 JSP页面请求与响应 60
3.1 JSP内置对象简介 60
3.2 页面输出对象out 62
3.2.1 out对象成员方法 62
3.2.2 输出数据到客户端 62
3.2.3 管理缓冲区 64
3.3 页面对象page 65
3.4 页面请求对象request 66
3.4.1 request对象成员方法 66
3.4.2 获取客户端信息 68
3.4.3 获取HTTP Headers信息 70
3.4.4 获取请求参数 72
3.4.5 管理请求中的属性 74
3.4.6 处理中文 76
3.5 页面响应对象response 77
3.5.1 response对象成员方法 77
3.5.2 处理HTTP Headers信息 78
3.5.3 处理重定向 80
3.6 实验指导3-1:维护商品信息 82
思考与练习 87
第4章 保存页面状态 88
4.1 会话对象session 88
4.1.1 session对象生命周期 88
4.1.2 session对象方法 89
4.1.3 session对象ID 90
4.1.4 存取数据应用 90
4.1.5 设置会话的有效时间 95
4.2 实验指导4-1:在线考试系统 95
4.3 pageContext对象 100
4.4 全局应用程序对象application 101
4.4.1 application对象生命周期 101
4.4.2 application对象方法 101
4.4.3 存储数据应用 103
4.5 获取配置信息对象config 104
思考与练习 106
第5章 JavaBean技术 108
5.1 JavaBean概述 108
5.1.1 JavaBean技术介绍 108
5.1.2 JavaBean的分类 109
5.1.3 JavaBean规范 110
5.2 JavaBean属性 111
5.2.1 Simple属性 111
5.2.2 Indexed属性 112
5.2.3 Bound属性 113
5.2.4 Constrained属性 114
5.3 实验指导5-1:邮箱验证 115
5.4 JavaBean作用域范围 118
5.4.1 JavaBean的作用域简介 118
5.4.2 Page作用域 118
5.4.3 Request作用域 120
5.4.4 Session作用域 122
5.4.5 Application作用域 123
5.5 实验指导5-2:统计登录用户数量 125
思考与练习 126
第6章 Servlet技术 128
6.1 Servlet基础 128
6.1.1 Servlet概述 128
6.1.2 Servlet的功能 129
6.1.3 Servlet的特点 130
6.1.4 Servlet的生命周期 130
6.2 Servlet技术开发 132
6.2.1 Servlet在Java EE中的结构体系 132
6.2.2 Servlet核心API 133
6.2.3 创建Servlet类 135
6.2.4 配置Servlet相关元素 137
6.3 Servlet的典型应用 138
6.3.1 Servlet读取表单数据 138
6.3.2 Servlet实现页面转发 138
6.3.3 Servlet读取当前页的绝对路径 139
6.3.4 Servlet操作Cookie 139
6.4 实验指导6-1:使用Servlet处理表单数据 141
6.5 Servlet过滤器 146
6.5.1 过滤器的处理方式 146
6.5.2 过滤器API 147
6.5.3 创建并配置过滤器 148
6.6 实验指导6-2:使用过滤器验证用户身份 150
6.7 Servlet监听器 153
6.7.1 Servlet监听器简介 153
6.7.2 监听Servlet上下文 153
6.7.3 监听HTTP会话 154
6.7.4 监听Servlet请求 155
6.8 实验指导6-3:使用监听器实现同一用户只能有一个在线 155
思考与练习 160
第7章 EL表达式 162
7.1 EL概述 162
7.1.1 EL的基本语法 162
7.1.2 EL的特点 163
7.1.3 使用EL表达式的条件 163
7.1.4 EL表达式的存取范围 164
7.1.5 通过EL访问数据 165
7.1.6 EL表达式的保留关键字 165
7.2 EL表达式的运算符 166
7.2.1 存取运算符 166
7.2.2 算术运算符 167
7.2.3 关系运算符 168
7.2.4 逻辑运算符 168
7.2.5 条件运算符 169
7.2.6 empty运算符 169
7.2.7 运算符的优先级 170
7.3 EL的隐含对象 170
7.3.1 页面上下文对象 171
7.3.2 访问环境信息的隐含对象 173
7.3.3 访问作用域范围的隐含对象 175
7.4 实验指导7-1:使用EL表达式实现计算器 175
7.5 定义和使用EL函数 176
7.5.1 定义和使用EL函数 177
7.5.2 常见的错误 179
7.6 实验指导7-2:使用EL访问 JavaBean属性 181
思考与练习 183
第8章 JSTL标签库 184
8.1 JSTL标签库简介 184
8.2 表达式标签 186
8.2.1 〈c:out〉输出标签 186
8.2.2 〈c:set〉设置标签 188
8.2.3 〈c:remove〉移除标签 190
8.2.4 〈c:catch〉捕获异常标签 191
8.3 URL操作标签 191
8.3.1 〈c:import〉文件导入标签 192
8.3.2 〈c:url〉生成URL地址标签 193
8.3.3 〈c:redirect〉重定向标签 193
8.3.4 〈c:param〉参数传递标签 194
8.4 流程控制标签 194
8.4.1 〈c:if〉条件判断标签 195
8.4.2 〈c:choose〉标签 196
8.4.3 〈c:when〉标签 196
8.4.4 〈c:otherwise〉标签 196
8.5 实验指导8-1:使用流程控制标签划分成绩 197
8.6 循环标签 198
8.6.1 〈c:forEach〉循环标签 199
8.6.2 〈c:forTokens〉迭代标签 200
8.7 实验指导8-2:使用JSTL标签库完成用户的登录 202
思考与练习 204
第9章 数据库应用技术 205
9.1 JDBC概述 205
9.1.1 JDBC简介 205
9.1.2 JDBC驱动程序分类 206
9.2 JDBC常用接口 209
9.2.1 驱动程序管理器DriverManager 209
9.2.2 数据库连接接口Connection 212
9.2.3 执行SQL语句接口Statement 214
9.2.4 执行动态SQL语句接口PreparedStatement 215
9.2.5 执行存储过程接口CallableStatement 216
9.2.6 访问结果集接口ResultSe 218
9.3 连接数据库 219
9.3.1 纯驱动连接 219
9.3.2 ODBC桥连接 220
9.4 实验指导9-1:图书信息管理 221
9.4.1 添加数据 222
9.4.2 查询数据 224
9.4.3 更新数据 225
9.4.4 删除数据 227
9.4.5 调用存储过程 228
9.4.6 分页显示 230
9.5 使用连接池 232
9.6 高级结果集 234
9.6.1 可滚动结果集 235
9.6.2 可更新结果集 237
9.7 实验指导9-2:实现一个基于MVC的留言本 240
9.7.1 了解MVC 240
9.7.2 创建数据库和表 241
9.7.3 编写实体层 242
9.7.4 编写DAO层 243
9.7.5 用户登录 245
9.7.6 发表留言 246
9.7.7 查看留言 248
思考与练习 249
第10章 JSP实用组件 251
10.1 Common-FileUpload组件上传文件 251
10.1.1 Common-FileUpload安装与配置 251
10.1.2 上传的核心类DiskFileUpload 252
10.1.3 处理的核心类ServletFileUpload 253
10.1.4 限制文件类型类SuffixFileFilter 254
10.1.5 实现上传 255
10.2 实验指导10-1:限制上传类型 258
10.3 实验指导10-2:无组件文件上传 260
10.4 实验指导10-3:无组件文件下载 263
10.5 发送E-mail 266
10.5.1 Java Mail组件简介 266
10.5.2 Java Mail核心类 267
10.5.3 设置Java Mail 271
10.5.4 实现发送E-mail 273
10.6 JSP动态图表 275
10.6.1 JFreeChart的下载与使用 275
10.6.2 JFreeChart的核心类 276
10.6.3 生成动态图表 276
10.7 XML操作 278
10.7.1 DOM核心接口 278
10.7.2 操作根节点 279
10.7.3 操作元素节点 281
10.7.4 操作属性节点 284
思考与练习 286
第11章 应用Ajax技术 288
11.1 什么是Ajax 288
11.2 Ajax核心对象 289
11.2.1 创建XMLHttpRequest对象 289
11.2.2 XMLHttpRequest对象属性和方法 290
11.2.3 XMLHttpRequest对象工作流程 291
11.3 使用Ajax 294
11.3.1 处理普通格式 294
13.3.2 处理XML格式 297
11.4 Ajax乱码解决方案 299
11.5 实验指导11-1:验证注册名是否重复 300
11.6 实验指导11-2:实现类别级联 301
思考与练习 304
第12章 应用Struts2技术 306
12.1 Struts2简介 306
12.1.1 MVC原理 306
12.1.2 Struts2框架的产生 308
12.1.3 Struts2的结构体系 308
12.2 创建第一个Struts2程序 309
12.2.1 Struts2相应的类库 309
12.2.2 创建Struts2程序 310
12.3 Action对象 313
12.3.1 Action对象简介 313
12.3.2 请求参数注入原理 315
12.3.3 Action的基本流程 315
12.3.4 Action的配置 316
12.3.5 动态Action 317
12.4 Struts2的配置文件 320
12.4.1 全局配置文件struts.properties 321
12.4.2 核心配置文件struts.xml 321
12.4.3 配置包和命名空间 322
12.4.4 使用通配符简化配置 322
12.4.5 配置返回结果 323
12.5 Struts2的开发模式 324
12.5.1 实现与Servlet API的交互 324
12.5.2 域模型DomainModel 326
12.5.3 驱动模型ModelDriven 327
12.6 Struts2的标签库 328
12.6.1 应用数据标签 328
12.6.2 应用控制标签 330
12.6.3 应用表单标签 332
12.7 Struts2的拦截器 333
12.7.1 拦截器简介 333
12.7.2 拦截器API 334
12.7.3 拦截器配置 335
12.8 实验指导12-1:使用拦截器过滤文字 335
思考与练习 338
第13章 应用 Hibernate技术 340
13.1 Hibernate简介 340
13.1.1 QRM原理 340
13.1.2 Hibernate结构体系 341
13.2 Hibernate入门 342
13.2.1 获取Hibemate 342
13.2.2 Hibemate配置文件 342
13.2.3 编写持久化类 343
13.2.4 Hibernate映射文件 345
13.2.5 Hibemate基本数据类型的映射 347
13.2.6 Hibemate自动建表技术 348
13.3 Hibemate持久化对象 349
13.3.1 Hibemate实例状态 349
13.3.2 Hibemate初始化类 350
13.3.3 添加数据 352
13.3.4 删除数据 353
13.3.5 修改数据 354
13.3.6 查询数据 356
13.4 Hibernate缓存 358
13.4.1 一级缓存 358
13.4.2 二级缓存 359
13.4.3 延迟加载策略 360
13.5 Hibernate实体关联关系映射 361
13.5.1 单向关联与双向关联 361
13.5.2 多对一单向关联映射 361
13.5.3 多对一双向关联映射 362
13.5.4 一对一主键关联映射 364
13.5.5 一对一外键关联映射 365
13.5.6 多对多关联映射 366
13.5.7 继承映射 366
13.6 Hibernate查询语言 369
13.6.1 HQL基础 369
13.6.2 查询实体对象 370
13.6.3 HQL语句的动态赋值 371
13.6.4 分页查询 371
13.7 实验指导13-1:用户信息管理 372
思考与练习 380
第14章 应用Spring技术 382
14.1 Spring简介 382
14.1.1 Spring的特点 382
14.1.2 Spring的组成 383
14.1.3 Spring的获取和安装 385
14.1.4 配置Bean 385
14.1.5 使用BeanFactory管理Bean 385
14.1.6 ApplicationContext的应用 387
14.2 依赖注入 387
14.2.1 依赖注入与控制反转 388
14.2.2 设值注入 388
14.2.3 构造注入 389
14.3 自动装配Bean 390
14.3.1 根据Bean名字装配 390
14.3.2 根据Bean类型装配 392
14.3.3 自动装配的其他方式 392
14.4 Spring AOP 393
14.4.1 AOP术语 393
14.4.2 通知 394
14.5 Spring切入点 395
14.5.1 静态切入点 395
14.5.2 动态切入点 397
14.6 Spring持久化 398
14.6.1 DAO模式 398
14.6.2 Spring DAO理念 398
14.6.3 事务应用的管理 401
14.6.4 应用JdbcTemplate操作数据库 403
14.6.5 与Hibernate整合 405
14.7 Spring MVC框架 405
14.7.1 Spring MVC简介 406
14.7.2 Spring MVC入门 407
14.7.3 Spring MVC组件 409
14.8 实验指导14-1:利用Spring向导控制器实现分步注册 412
思考与练习 418
第15章 员工管理系统 420
15.1 系统功能模块设计 420
15.2 数据库设计 421
15.2.1 管理员表 421
15.2.2 部门信息表 421
15.2.3 员工信息表 422
15.3 SSH框架的搭建 423
15.3.1 项目的创建及包的导入 423
15.3.2 实体关系映射 423
15.3.3 配置文件的编写 428
15.4 DAO层的设计与实现 430
15.4.1 管理员DAO层的设计与实现 431
15.4.2 部门信息DAO层的设计与实现 432
15.4.3 员工信息DAO层的设计与实现 433
15.5 业务层的设计与实现 435
15.5.1 管理员业务层的设计与实现 435
15.5.2 员工信息业务层的设计与实现 436
15.5.3 部门信息业务层的设计与实现 438
15.6 Action层的设计与实现 440
15.6.1 管理员Action层 440
15.6.2 员工信息管理Action层 441
15.6.3 部门信息管理Action层 446
15.7 JSP页面的建立和运行效果 449
15.7.1 管理员管理相关页面 449
15.7.2 员工信息管理相关页面 450
15.7.3 部门信息管理相关页面 453
15.8 其他功能的实现 456
15.8.1 过滤器的实现 456
15.8.2 公共方法 457
15.8.3 中文乱码的解决 458
附录 思考与练习答案 459