
现在常见的B/S结构的Web应用开发技术中,Java Web应用开发技术占据了主流。深入学习和掌握Java Web编程技术,对于计算机专业的学生来讲是必不可少的重要的专业课程之一。
本教材主要介绍Java Web应用开发相关技术JDBC、Servlet、JSP、JavaBean、EL和JSTL以及开源框架Struts2等。本教材可作为高等学校计算机及相关专业Web编程技术课程教材,也可供从事Java Web应用开发的技术人员学习参考。
在服务器端编程方面,Java Web技术以其可靠性高、安全性好等特点成为市场主流,因此深入学习和掌握Java Web应用开发的相关技术变得日益重要。
笔者从事Java、Java EE、Java Web等相关课程的教学和培训10余年,主持和参与了多项基于Java技术的项目,积累了许多教学和实践经验。本书致力于为学习Java Web应用开发技术的读者提供一个坚实的理论基础和实践基础,在注重基础知识理解的同时强调实践能力的培养。本书具有如下特点:
(1) 内容简洁、完整,便于读者全面掌握Java Web应用开发技术的基础知识。
(2) 实践性强,以实例形式介绍多种Java Web应用开发技术。
(3) 系统性强,以实际常用的集成开发环境Eclipse、Web服务器Tomcat、数据库MySQL等软件为主进行了整合,并针对Java Web应用开发中的常用技术编写了大量系统性案例。
(4) 侧重于服务器后端技术,详细介绍Java Web应用开发相关技术。
(5) 思考与习题基础性强,有助于提高读者兴趣,解决新手编程入门难的问题。
全书共分13章,内容包括:集成开发环境搭建与使用、JDBC、Servlet、JSP、JavaBean、表达式语言、JSTL、过滤器和监听器、自定义标签、JPA、Spring框架核心基础、使用Spring持久化、Spring MVC。
本书既适合作为高等院校Java Web应用开发技术课程的教材,也可作为高职高专、成人高等教育、社会培训班的教材,还可作为Java Web应用开发技术自学者的教材或参考书。
本书由山东建筑大学的郭庆、田甜、王向辉、徐遵义编著。其中,徐遵义编写了第1、9章,郭庆编写了第2~4章和第10~13章,田甜编写了第5、6章,王向辉编写了第7、8章。
本书参考了大量的国内外文献,在此向这些文献的作者表示深深的敬意和衷心的感谢!
软件技术发展迅速,加之作者水平和时间有限,书中难免有不妥之处,恳请读者批评指正。
编者2018年1月
第1章集成开发环境搭建1
1.1集成开发环境搭建1
1.1.1安装JDK1
1.1.2安装Tomcat3
1.1.3安装MySQL4
1.1.4安装Eclipse4
1.1.5Eclipse集成Tomcat5
1.2Eclipse基本使用7
1.2.1创建和运行Java项目7
1.2.2创建和运行Java Web项目9
小结11
思考与习题11
第2章JDBC12
2.1JDBC简介12
2.1.1JDBC的概念12
2.1.2JDBC 3.0 API简介12
2.1.3JDBC驱动程序类型15
2.2使用JDBC 17
2.2.1准备工作17
2.2.2使用JDBC一般步骤18
2.3JDBC实现增、删、改、查 23
2.3.1插入记录23
2.3.2查询记录24
2.3.3更新记录25
2.3.4删除记录26
2.4JDBC进阶27
2.4.1数据库帮助类DBConnection27
2.4.2使用PreparedStatement29〖1〗〖3〗Java Web应用开发基础教程〖3〗〖3〗2.4.3调用存储过程30
2.5JDBC事务管理33
2.5.1事务的概念33
2.5.2JDBC事务管理33
2.6JDBC 4.x36
小结38
思考与习题38
第3章Servlet39
3.1Servlet简介39
3.1.1Servlet的概念39
3.1.2Servlet与CGI的区别39
3.1.3Servlet的功能40
3.1.4Servlet的优点40
3.1.5Servlet API简介41
3.1.6Servlet的生命周期44
3.2创建Servlet45
3.2.1Java Web应用的结构45
3.2.2创建和配置Servlet46
3.2.3使用Eclipse创建和配置Servlet48
3.3Servlet常用功能51
3.3.1Servlet接收请求参数51
3.3.2作用域与存取数据53
3.3.3Servlet请求转发与重定向55
3.3.4获取Servlet初始化参数56
3.3.5配置Servlet加载顺序57
小结58
思考与习题58
第4章JSP59
4.1JSP简介59
4.1.1JSP的概念 59
4.1.2JSP的优点59
4.1.3JSP执行过程和第一次访问60
4.2JSP注释61
4.3JSP指令元素62
4.3.1page指令62
4.3.2include指令64
4.3.3taglib指令65
4.4脚本元素65
4.5动作元素66
4.5.1<jsp:forward>67
4.5.2<jsp:include>68
4.6内建对象69
4.6.1out对象69
4.6.2response对象70
4.6.3request对象72
4.6.4session对象73
4.6.5application对象76
4.6.6pageContext对象76
4.6.7config对象77
4.6.8exception对象79
小结79
思考与习题80
第5章JavaBean81
5.1JavaBean规范81
5.2访问JavaBean82
5.2.1使用脚本段代码访问JavaBean82
5.2.2使用动作元素访问JavaBean83
5.3JSP+JavaBean开发模式87
5.4JSP+Servlet+JavaBean开发模式90
小结91
思考与习题91
第6章表达式语言93
6.1表达式语言基础93
6.1.1表达式语言语法93
6.1.2.运算符与[]运算符94
6.1.3获取变量时的搜索顺序94
6.1.4自动转型96
6.1.5保留字96
6.1.6内建对象96
6.1.7运算符97
6.2表达式语言函数99
6.2.1表达式语言定义函数99
6.2.2JSP页面使用表达式语言调用函数100
小结101
思考与习题101
第7章JSTL103
7.1JSTL简介103
7.1.1JSTL构成103
7.1.2在JSP页面使用JSTL103
7.2核心标签库104
7.2.1一般操作105
7.2.2流程控制操作109
7.2.3迭代操作111
7.2.4URL操作115
7.3I18N格式标签库118
7.3.1国际化标签119
7.3.2消息标签121
7.3.3数字、时间日期格式化127
7.4SQL标签库136
7.4.1<sql:setDataSource>137
7.4.2<sql:query>137
7.4.3<sql:update>138
7.4.4<sql:param>139
7.4.5<sql:dateParam>140
7.4.6<sql:transaction>140
小结141
思考与习题142
第8章过滤器和监听器143
8.1过滤器143
8.1.1javax.servlet.Filter接口143
8.1.2配置过滤器144
8.1.3过滤器解决中文乱码146
8.2监听器147
8.2.1监听器接口148
8.2.2配置监听器150
8.2.3监听器统计在线人数151
小结151
思考与习题152
第9章自定义标签153
9.1自定义标签简介153
9.2传统标签154
9.2.1传统标签API154
9.2.2传统标签生命周期155
9.2.3实现Tag接口的传统标签156
9.2.4继承TagSupport类的传统标签158
9.2.5带属性和标签体的传统标签159
9.2.6修改内容的传统标签161
9.3简单标签163
9.3.1简单标签API163
9.3.2简单标签生命周期163
9.3.3继承SimpleTagSupport的简单标签164
9.3.4输出标签体内容的简单标签165
9.3.5带属性的简单标签166
9.3.6修改标签体内容的简单标签168
小结169
思考与习题169
第10章JPA171
10.1JPA简介171
10.1.1O/R映射与JPA171
10.1.2Eclipse下搭建JPA Java SE环境172
10.2实体174
10.2.1实体类的编写规范174
10.2.2@Entity注解175
10.2.3@Table注解176
10.2.4@Id注解176
10.2.5@Column注解177
10.2.6@Transient注解178
10.2.7属性注解使用的位置178
10.3EntityManager179
10.3.1获取EntityManager实例179
10.3.2配置持久化单元181
10.3.3实体对象的状态与EntityManager API182
10.3.4刷新操作185
10.3.5实体生命周期回调186
10.4实体映射关系188
10.4.1单向一对一映射188
10.4.2双向一对一映射191
10.4.3单向一对多映射191
10.4.4双向一对多映射193
10.4.5单向多对一映射195
10.4.6单向多对多映射195
10.4.7双向多对多映射197
10.5实体映射继承与多态197
10.5.1整个类继承层次结构使用单个表198
10.5.2各子类使用单独的表201
10.5.3各个具体实体类使用单个表203
10.5.4实体继承总结206
10.6JPA查询语言206
10.6.1查询单个实体207
10.6.2查询实体属性和关系属性(投影)207
10.6.3使用IN访问关系集合属性208
10.6.4连接实体210
10.6.5使用参数211
10.6.6分页功能213
10.6.7ORDER BY213
10.6.8DISTINCT214
10.6.9在查询中构建对象214
10.6.10批量更新和批量删除215
10.6.11使用WHERE子句215
10.6.12GROUP BY和HAVING215
10.6.13NativeQuery216
10.6.14命名查询216
10.6.15调用存储过程217
小结218
思考与习题219
第11章Spring框架核心基础220
11.1Spring框架简介220
11.1.1Spring体系结构220
11.1.2Java SE环境下使用Spring222
11.2IOC容器224
11.2.1BeanFactory容器224
11.2.2ApplicationContext容器224
11.3依赖注入225
11.3.1setter注入225
11.3.2构造方法注入226
11.4注入参数详解229
11.4.1字面值注入230
11.4.2引用其他Bean230
11.4.3嵌套Bean注入231
11.4.4null值注入231
11.4.5级联属性注入232
11.4.6集合注入232
11.5简化配置238
11.6Bean的作用域和生命周期239
11.6.1Bean的作用域239
11.6.2Bean的生命周期240
11.7使用XML的自动装配240
11.8使用Java配置241
11.8.1使用Java手动配置241
11.8.2使用Java自动装配245
11.9AOP247
11.9.1AOP 简介247
11.9.2AOP的术语249
11.9.3Spring AOP基础249
11.9.4使用注解实现Spring AOP前置和后置增强251
11.9.5使用注解实现Spring AOP环绕增强254
11.9.6使用XML配置Spring AOP实现前置和后置增强255
小结258
思考与习题258
第12章使用Spring持久化259
12.1使用Spring JDBC259
12.1.1使用JdbcTemplate259
12.1.2JdbcTemplate调用存储过程264
12.2事务管理266
12.2.1Spring事务管理简介266
12.2.2编程式事务269
12.2.3声明式事务271
12.3Spring整合JPA275
12.3.1配置LocalEntityManagerFactoryBean276
12.3.2配置从JNDI获取EntityManagerFactory276
12.3.3配置LocalContainerEntityManagerFactoryBean277
12.3.4Spring整合JPA时使用Spring Data280
12.3.5Spring Data JPA的自定义查询283
12.3.6自定义查询方法的使用顺序286
小结287
思考与习题287
第13章Spring MVC288
13.1Spring MVC配置288
13.1.1使用XML配置Spring MVC288
13.1.2使用Java配置Spring MVC292
13.2编写控制器294
13.2.1第一个简单的控制器294
13.2.2处理请求参数295
13.2.3处理路径参数296
13.2.4处理表单参数297
13.3数据校验299
13.4视图解析302
13.4.1JSP视图303
13.4.2Tile视图304
13.4.3返回Json309
13.5文件上传310
小结313
思考与习题314
第3章综合案例设计解析84
案例1城市人口数据处理系统84
案例2数据滤波并行计算系统91
案例3小型学生通讯录管理系统94
案例4飞机订票信息系统98
案例5个人财务管理系统102
案例6小型超市管理系统105
案例7图书借阅管理系统108
第4章基本概念测试114
测试1数据类型与表达式114
测试2控制结构120
测试3数组142
测试4函数159
测试5指针176
测试6结构体与预定义189
测试7文件194
附录A常用C语言库函数199附录B常见编程错误204附录C实验报告样例212
⑴ 内容简洁、完整,便于读者全面掌握Java Web应用开发技术的基础知识。
⑵ 实践性强,以实例形式介绍多种Java Web应用开发技术。
⑶ 系统性强,以实际常用的集成开发环境Eclipse、Web服务器Tomcat、数据库MySQL等软件为主进行了整合,并对Java Web应用开发中的常用技术编写了大量系统性案例。
⑷ 侧重于服务器后端技术,详细介绍Java Web应用开发相关技术。
⑸ 思考与习题基础性强,便于提高读者兴趣,解决新手编程入门难的问题。
郭庆,软件工程硕士,山东建筑大学计算机学院讲师。多年来一直从事Java、Java Web、开源框架技术等相关课程的讲授和企业培训。主持和参加了多个基于Java Web编程项目,具有Java Web实际项目的编程经验。