
本书通过通俗易懂的语言、丰富实用的实例,详细讲解了使用Java语言和开源框架进行Web程序开发应该掌握的各项技术。其内容主要包括:安装JDK和Tomcat、JSP脚本和页面指令、request和out对象、session和application对象、使用JavaBean、Servlet技术、使用EL表达式、JSTL标签、JDBC连接MySQL、ODBC连接Access、执行查询和存储过程、显示结果集、文件上传与下载、发送邮件、动态报表、处理XML、使用Ajax技术、Struts框架、Hibernate框架以及Spring框架等。最后采用三大框架整合开发一个OA员工管理系统综合讲解本书的知识内容。
本书适合使用Java Web进行动态网站开发的初中级读者和编程爱好者,既可作为软件开发人员的参考手册,也可作为高校教师的教学参考书。
随着互联网技术的普及和推广,Web开发技术也迅速发展起来。Java语言以其简单易学、开源跨平台等诸多特性,吸引了众多软件开发人员的关注与实践。近年来,Java语言已经成为软件开发人员开发软件的首选语言,尤其在Web开发方面,Java EE技术已经成为企业信息化开发平台的首选技术。目前,主流的Java Web开发技术既包括JSP、JDBC、Servlet等基本技术,还包括Struts、Spring和Hibernate等基于Java EE平台的轻量级框架技术。
本书是Java Web开发的基础类教程,编者使用通俗易懂的语言对Java Web开发中所涉及的知识点进行了系统的介绍。本书编写思路清晰、内容翔实、案例实用。本书既可作为计算机软件以及其他计算机相关专业的教材,也可以作为Java Web编程人员的参考书。
1.本书内容
全书共分为15章,主要内容如下。
第1章 Java Web入门知识。本章主要介绍Java Web的基本知识以及开发环境的配置,最后介绍常见的开发模式。
第2章 JSP语法。本章主要讲解JSP语法基础,包括JSP页面构成、JSP指令标记、JSP脚本元素、JSP动作元素和JSP页面的注释部分。
第3章 JSP页面请求与响应。本章主要介绍实现页面响应、输出及请求和对象,包括page对象、out对象、response对象和request对象。
第4章 保存页面状态。本章主要介绍JSP中用于保存页面状态和数据的对象,包括session、pageContext、application和config。
第5章 JavaBean技术。本章主要介绍JavaBean的构成,以及不同类型属性的使用和JavaBean的应用,并详细介绍了不同作用域中JavaBean的生命周期。
第6章 Servlet技术。本章主要介绍Servlet的生命周期、创建和配置Servlet、Servlet读取数据和页面转发、Servlet过滤器以及监听器的使用等。
第7章 EL表达式。本章将对EL表达式的语法、基本应用、运算符以及其隐含对象进行详细介绍。
第8章 JSTL标签库。本章主要讲解JSTL核心标签库和SQL标签库等常用标签库。
第9章 数据库应用技术。本章主要介绍JDBC的基本概念和相关接口,如何使用JDBC提供的接口操作数据库,使用预编译语句等。
第10章 JSP实用组件。本章主要介绍JSP开发过程中经常用到的实用组件,例如,Common-FileUpload组件实现文件上传、Java mail组件发送邮件、JFreeChart组件显示图表以及处理XML等。
第11章 应用Ajax技术。本章简单介绍Ajax的概念,重点讲解使用Ajax的核心对象XMLHttpRequest处理文本和XML,最后介绍了如何解决Ajax乱码问题。
第12章 应用Struts2技术。本章主要讲解在Web开发中Struts2的应用,包括Struts2中的配置文件、Action、Struts2的开发模式和标签等基本知识。
第13章 应用Hibernate技术。本章主要介绍Hibernate的入门配置、持久化对象的方法、缓存的使用以及实体映射关系,同时还介绍了HQL。
第14章 应用Spring技术。本章主要介绍Spring的配置、依赖注入方法、自动装配、AOP、切入和持久化应用,以及MVC框架的用法。
第15章 员工管理系统。本章使用Struts2、Spring和Hibernate框架整合实现了对员工信息和员工部门的管理,以及管理员的登录。
2.本书特色
这本书主要是针对初学者或中级读者量身订做的,全书以章为单位,由浅入深地讲解了JSP技术。全书突出了开发时的重要知识点,并配以案例讲解,充分体现了理论与实践相结合。
1)知识全面
本书紧紧围绕Java Web技术展开讲解,具有很强的逻辑性和系统性。
2)实例丰富
书中各实例均经过作者精心设计和挑选,它们都是根据作者在实际开发中的经验总结而来,涵盖了在实际开发中所遇到的各种场景。
3)应用广泛
对于精选案例,给出了详细步骤,结构清晰简明,分析深入浅出,而且有些程序能够直接在项目中使用,避免读者进行二次开发。
4)基于理论,注重实践
在讲述过程中,不仅介绍理论知识,而且在合适位置安排了综合应用实例,或者小型应用程序,将理论应用到实践当中来加强读者实际应用能力,巩固开发基础和知识。
5)随书光盘
本书为实例配备了视频教学文件,读者可以通过视频文件更加直观地学习Java Web技术的开发知识。
6)网站技术支持
读者在学习或者工作的过程中,如果遇到实际问题,可以直接登录www.itzcn.com与我们取得联系,作者会在第一时间内给予帮助。
7)贴心的提示
为了便于读者阅读,全书中还穿插着一些技巧、提示等小贴士,体例约定如下。
提示:通常是一些贴心的提醒,让读者加深印象或提供建议,或者解决问题的方法。
注意:提出学习过程中需要特别注意的一些知识点和内容,或者相关信息。
技巧:通过简短的文字,指出知识点在应用时的一些小窍门。
3.读者对象
本书适合作为软件开发入门者的自学用书,也适合作为高等院校相关专业的教学参考书,也可供开发人员查阅和参考。
除了封面署名人员之外,参与本书编写的人员还有李海庆、王咏梅、康显丽、王黎、汤莉、倪宝童、赵俊昌、方宁、郭晓俊、杨宁宁、王健、连彩霞、丁国庆、牛红惠、石磊、王慧、李卫平、张丽莉、王丹花、王超英、王新伟等。本书中难免会有疏漏与不妥之处,欢迎读者通过清华大学出版社网站www.tup.tsinghua.edu.cn与我们联系,帮助我们改正提高。
??
??
??
??
第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 访问结果集接口
ResultSet 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 ORM原理 340
13.1.2 Hibernate结构体系 341
13.2 Hibernate入门 342
13.2.1 获取Hibernate 342
13.2.2 Hibernate配置文件 342
13.2.3 编写持久化类 343
13.2.4 Hibernate映射文件 345
13.2.5 Hibernate基本数据类型的
映射 347
13.2.6 Hibernate自动建表技术 348
13.3 Hibernate持久化对象 349
13.3.1 Hibernate实例状态 349
13.3.2 Hibernate初始化类 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
??
??
??
??
这本书主要是针对初学者或中级读者量身订做的,全书以章为单位,由浅入深地讲解了JSP技术。全书突出了开发时的重要知识点,并配以案例讲解,充分体现了理论与实践相结合。