Java Web基础与实例教程

Java Web基础入门教材
分享 推荐 4 收藏 139 阅读 6.0K
孔祥盛 , 赵芳 (主编) 978-7-115-54281-6

关于本书的内容有任何问题,请联系 许金霞

1.内容基础,讲解细腻,便于自学
为了方便读者理解晦涩难懂的知识点,作者亲手绘制了大量图片进行形象化表达。
2.由浅入深、知识详尽
读者按照章节顺序学习本书内容时,丝毫不会感到顿挫。学完本书的内容后,读者可以掌握Java Web的组件知识、HTTP知识、异步请求与响应知识、JSP+JSTL知识、数据库设计知识、事务管理知识、UI前端框架layui以及CKEditor知识、MVC知识。
3.理论知识和实践操作充分融合
本书力求将Java Web理论知识全部融入实践任务中,读者完成实践任务后,获得阶段性学习成果的同时,也掌握了Java Web理论知识。
4.实践任务目的明确、环境具体、步骤详细
本书将实践任务分解成若干子任务,将子任务分解成若干增设场景,将场景分解成若干个步骤,读者按照步骤提示即可自行完成实践任务。
5.项目案例精心定制
本书将Java Web知识充分融入精心定制的项目案例,读者按照步骤提示即可快速开发出类实际系统,帮助读者激发学习兴趣,帮助读者获得学习的成就感。

内容摘要

本书采用“任务驱动”的编写模式,由浅入深、循序渐进、系统地介绍了Java Web开发的相关知识。通过实际应用的案例,帮助读者巩固所学知识,以便更好地进行开发实践。
全书共15章,内容涵盖了Java Web开发基础知识、Servlet接收GET请求数据、Servlet接收POST请求数据、Servlet生成HTTP响应数据、异步请求和异步响应、会话控制技术:Cookie与Session、过滤器Filter和监听器Listener、MVC和JSTL、个人笔记系统的数据库设计及实现、MySQL事务机制和JDBC的使用、layui以及CKEditor的使用,以及个人笔记系统首页模块的设计与实现、用户管理模块的设计与实现、笔记管理模块的实现、其他功能模块的设计与实现等知识。

目录


目 录

第1章 Java Web开发基础知识 1
1.1 B/S概述 1
1.1.1 浏览器 1
1.1.2 服务器 1
1.2 静态代码和动态代码 1
1.2.1 HTML和静态代码 2
1.2.2 服务器端脚本语言和动态代码 2
1.2.3 Servlet容器和动态代码之间的关系 3
1.2.4 Web服务器上资源文件的分类 3
1.3 HTTP概述 4
1.3.1 浏览器与Web服务器之间的交互 4
1.3.2 HTTP的本质 5
1.3.3 HTTP请求/HTTP响应的详细过程 5
1.4 Java Web开发环境的部署 6
1.4.1 JDK的版本选择和安装 6
1.4.2 Tomcat的版本选择和安装 6
1.4.3 启动和停止运行Tomcat 6
1.4.4 本机的“左右互搏之术” 8
1.4.5 Tomcat端口占用问题 9
1.4.6 有趣的实验 9
实践任务 Java Web开发基础知识 11
第2章 Servlet接收GET请求数据 19
2.1 使用Eclipse开发Java Web程序 19
2.1.1 Eclipse的安装和启动 19
2.1.2 启动Eclipse的注意事项 19
2.1.3 认识Eclipse工作空间 20
2.1.4 小露身手:使用Eclipse创建动态Web项目 21
2.1.5 Eclipse的View和Perspective 23
2.1.6 小露身手:使用Eclipse创建第一个Servlet程序 23
2.1.7 Eclipse中Servlet的URL Mappings和Servlet的urlPatterns 27
2.1.8 Servlet程序的生命周期 27
2.1.9 小露身手:使用Eclipse创建JSP程序 29
2.2 字符编码 30
2.2.1 JSP文件的字符编码与pageEncoding 30
2.2.2 MIME和字符编码 31
2.2.3 JSP文件、pageEncoding和charset的字符编码之间的关系 33
2.3 URL路径 34
2.4 过程分析:浏览器发送GET请求数据和Web服务器接收GET请求数据 35
2.4.1 过程分析:浏览器向Web服务器发送GET请求数据 35
2.4.2 GET请求数据的构成 35
2.4.3 过程分析:Web服务器接收GET请求数据 38
2.5 request请求对象获取GET请求数据 39
2.5.1 获取路径信息 40
2.5.2 获取GET请求参数信息 40
2.5.3 获取GET请求行信息 40
2.5.4 获取GET请求头信息 40
2.5.5 获取Web服务器主机和浏览器主机信息 41
2.5.6 获取URL Mappings信息的方法 41
2.6 request请求对象的请求派发功能 41
2.6.1 RequestDispatcher 41
2.6.2 请求派发的请求转发 42
2.6.3 请求转发的实现 43
2.6.4 请求转发之间Servlet程序的数据共享 43
2.6.5 request请求对象的属性和参数区别 44
实践任务 Servlet程序接收GET请求数据 44
第3章 Servlet接收POST请求数据 51
3.1 FORM表单 51
3.1.1 表单标签 51
3.1.2 表单控件 51
3.1.3 表单按钮 54
3.1.4 小露身手:利用FORM表单模拟发送GET请求数据 55
3.2 URL路径定位方法 56
3.2.1 URL绝对路径 57
3.2.2 URL相对路径 57
3.2.3 page-relative路径的技巧 59
3.2.4 小露身手:URL路径定位方法 60
3.3 过程分析:浏览器发送POST请求数据和Web服务器接收POST请求数据 62
3.3.1 准备工作 62
3.3.2 过程分析:浏览器向Web服务器发送POST请求数据 63
3.3.3 POST请求数据的构成 63
3.3.4 POST与GET请求数据对比小结 64
3.3.5 过程分析:Web服务器接收POST请求数据 65
3.4 小露身手:request请求对象接收application/x-www-form-urlencoded格式的POST请求数据 65
3.5 小露身手:向Servlet程序添加multipart/form-data支持 70
3.5.1 application/x-www-form-urlencoded与multipart/form-data的比较 72
3.5.2 理解multipart/form-data内容格式中的片段 73
3.5.3 request请求对象获取multipart/form-data请求体中的“片段” 74
实践任务 Servlet接收POST请求数据 76
第4章 Servlet生成HTTP响应数据 78
4.1 HTTP响应数据与HttpServletResponse之间的关系 78
4.2 HTTP响应行 79
4.2.1 响应状态码 79
4.2.2 使用response响应对象设置响应状态码 79
4.3 HTTP响应头列表 80
4.3.1 常见的响应头 80
4.3.2 使用response响应对象设置、添加响应头 82
4.3.3 重定向、定时刷新和请求转发的比较 83
4.4 使用response响应对象生成HTTP响应体 85
4.4.1 response响应对象的缓存 85
4.4.2 向response缓存添加文本型数据 86
4.4.3 向response缓存添加字节数据 86
4.4.4 response响应对象“一石三鸟”的代码 87
实践任务 Servlet生成HTTP响应数据 88
第5章 异步请求和异步响应 99
5.1 Web前端技术 99
5.1.1 HTML简介 99
5.1.2 HTML元素的属性 100
5.1.3 CSS简介 100
5.1.4 小露身手:理解CSS中层叠的含义 101
5.1.5 JavaScript简介 102
5.2 JavaScript入门 102
5.2.1 JavaScript基础知识 102
5.2.2 小露身手:演示HTML元素和JavaScript呈现的顺序 104
5.2.3 通过JavaScript的document对象操作HTML元素 105
5.2.4 小露身手:通过JavaScript的document对象操作HTML元素内容 106
5.3 异步请求和异步响应 107
5.3.1 异步请求和同步请求概述 108
5.3.2 XMLHttpRequest异步请求对象 109
5.3.3 小露身手:了解GET异步请求和异步响应的执行流程 112
5.3.4 小露身手:使用XMLHttpRequest发送异步的POST请求 114
5.3.5 小露身手:使用XMLHttpRequest和FormData异步上传、显示图片 115
实践任务 异步请求和异步响应 118
第6章 会话控制技术:Cookie与Session 119
6.1 会话控制技术概述 119
6.2 Cookie会话控制技术 119
6.2.1 Cookie的工作原理 119
6.2.2 Cookie的本质与核心 121
6.2.3 创建Cookie 122
6.2.4 将cookie对象添加到HTTP响应头列表中 123
6.2.5 读取Cookie 124
6.2.6 使Cookie手动失效 124
6.2.7 小露身手:Cookie的综合运用 125
6.2.8 重定向和请求转发关于Cookie使用的区别 128
6.3 Session会话控制技术 130
6.3.1 Session的工作原理 130
6.3.2 Session的本质与核心 131
6.3.3 开启Session和获取已有的session对象 132
6.3.4 Servlet开启Session的区别和JSP开启Session的区别 132
6.3.5 session对象的使用 132
6.3.6 删除Session或者使Session失效 133
6.3.7 小露身手:Session的综合使用 133
实践任务 会话控制技术:Cookie与Session 145
第7章 过滤器和监听器 146
7.1 过滤器 146
7.1.1 小露身手:创建最简单的过滤器ABCFilter 147
7.1.2 过滤器总结 149
7.1.3 小露身手:过滤器链的使用 150
7.1.4 过滤器的综合应用1:URL级别的权限访问控制 151
7.1.5 小露身手:使用过滤器实现URL级别的权限访问控制 152
7.1.6 过滤器的综合应用2:使用过滤器实现表单验证 154
7.1.7 小露身手:使用过滤器实现表单验证 154
7.2 监听器 155
7.2.1 小露身手:演示Java Web状态监听器和属性监听器 156
7.2.2 小露身手:利用HttpSessionListener统计在线人数 159
实践任务 过滤器和监听器 160
第8章 MVC和JSTL 161
8.1 MVC 161
8.1.1 MVC的历史与简介 161
8.1.2 MVC与Web开发之间的关系 162
8.1.3 MVC与Java Web的关系 162
8.1.4 理解Service和DAO之间的关系 164
8.2 JavaBean 165
8.2.1 JavaBean简介 165
8.2.2 JavaBean代码编写规范 165
8.2.3 JavaBean命名属性的特殊情况 166
8.2.4 小露身手:在Eclipse中创建数据模型JavaBean和业务逻辑Service 167
8.2.5 JavaBean的分类 169
8.3 JSP的内置对象 170
8.3.1 内置对象out 170
8.3.2 内置对象application和Servlet中的ServletContext 171
8.3.3 内置对象pageContext 172
8.4 EL 172
8.4.1 EL简介 173
8.4.2 EL的功能和优点 173
8.4.3 EL的内置对象 174
8.4.4 小露身手:EL的使用 174
8.5 JSTL 181
8.5.1 JSTL核心标签库的准备工作 181
8.5.2 JSTL核心标签库的使用 182
8.5.3 小露身手:JSTL核心标签库的使用 182
实践任务 MVC和JSTL 186
第9章 个人笔记系统的数据库设计及实现 187
9.1 数据库概述 187
9.1.1 数据库管理系统和数据库 187
9.1.2 数据库和数据库对象 187
9.1.3 数据库和数据库表 188
9.1.4 SQL 188
9.1.5 重新认识数据库表 188
9.2 个人笔记系统数据库的设计 189
9.2.1 构建个人笔记系统的必要性 189
9.2.2 个人笔记系统的功能需求分析 189
9.2.3 E-R图简介 190
9.2.4 个人笔记系统E-R图的设计 193
9.2.5 个人笔记系统的表结构设计 195
9.3 MySQL环境准备工作 196
9.3.1 MySQL的版本选择 196
9.3.2 MySQL的安装和配置 197
9.3.3 启动与停止MySQL服务 197
9.3.4 打开MySQL客户机、连接MySQL实例 198
9.4 数据库的管理 199
9.5 表结构的管理 200
9.5.1 创建表结构的准备工作 200
9.5.2 创建表结构的SQL语句语法格式 202
9.5.3 查看表和查看表结构 202
9.5.4 删除表结构 203
9.5.5 小露身手:创建个人笔记系统的数据库和数据库表 203
9.6 表记录的更新 204
9.6.1 添加表记录 205
9.6.2 修改表记录 205
9.6.3 删除表记录 205
9.6.4 检索表的所有记录 205
9.6.5 小露身手:向个人笔记系统的数据库添加测试数据 206
9.6.6 小露身手:更新表记录时,不能违反表之间的外键约束条件 207
9.7 表记录的检索 208
9.7.1 使用select子句指定字段列表 208
9.7.2 distinct和limit 208
9.7.3 表和表之间的连接 209
9.7.4 使用where子句过滤结果集 209
9.7.5 使用order by对结果集排序 211
9.7.6 使用聚合函数汇总结果集 211
9.7.7 使用group by子句对记录分组统计 211
9.7.8 小露身手:个人笔记系统的综合查询 211
实践任务 个人笔记系统的数据库 设计及实现 212
第10章 MySQL事务机制和JDBC的使用 214
10.1 MySQL事务机制 214
10.1.1 个人笔记系统中事务机制的必要性 214
10.1.2 事务机制中同一个数据库连接的必要性 215
10.1.3 事务机制中关闭数据库连接自动提交模式的必要性 215
10.1.4 个人笔记系统的事务实现 216
10.2 JDBC概述 217
10.2.1 Java程序通过JDBC访问数据库的步骤 217
10.2.2 部署数据库驱动程序 218
10.2.3 加载数据库驱动程序 218
10.2.4 创建数据库连接对象con 219
10.2.5 关闭con对象的自动提交模式 220
10.2.6 使用con对象准备预处理SQL语句 220
10.2.7 初始化预处理SQL语句的参数 220
10.2.8 执行预处理SQL语句 221
10.2.9 遍历结果集 221
10.2.10 结束事务 223
10.2.11 关闭资源 223
10.2.12 获取insert语句的自增型字段的值 223
10.2.13 异常总结和其他建议 224
10.2.14 小露身手:使用JDBC访问MySQL数据库 224
10.2.15 小露身手:设计工具类DBUtil 225
10.2.16 小露身手:个人笔记系统中事务的必要性 229
10.3 基于MVC的Java Web开发中的事务管理 230
10.3.1 多个DAO共用同一个数据库连接对象的解决方案 231
10.3.2 使用过滤器管理数据库连接对象和事务 233
10.3.3 借助ThreadLocal工具类共享参数 234
10.3.4 小露身手:借助ThreadLocal工具类共享参数 234
10.3.5 小露身手:使用过滤器和Threadlocal管理事务 236
实践任务 MySQL事务机制和JDBC的使用 240
第11章 layui和CKEditor的使用 242
11.1 layui的使用 242
11.1.1 小露身手:快速上手layui 243
11.1.2 小露身手:layui中的页面元素 247
11.1.3 layui的栅格布局 251
11.1.4 小露身手:layui中常用的容器 252
11.1.5 小露身手:layui中常用的内置JavaScript模块 256
11.1.6 layui知识补充 258
11.1.7 小露身手:layui补充知识 258
11.2 CKEditor 5的使用 263
11.2.1 经典模式编辑器的下载和安装 263
11.2.2 小露身手:CKEditor的基本使用 263
实践任务 layui和CKEditor的使用 267
第12章 项目实训:个人笔记系统首页模块的设计与实现 268
12.1 个人笔记系统首页模块的设计与分析 268
12.1.1 个人笔记系统首页模块的视图层设计 268
12.1.2 个人笔记系统首页模块的逻辑分析 269
12.1.3 个人笔记系统首页模块的数据分析 270
12.2 个人笔记系统URL级别的权限访问控制的设计 271
12.3 个人笔记系统Java类的目录设置 272
12.4 个人笔记系统类名和方法名的命名规则 272
12.5 个人笔记系统静态资源文件的目录设置 272
实践任务 个人笔记系统首页模块的设计与实现 273
第13章 项目实训:个人笔记系统用户管理模块的设计与实现 283
13.1 用户注册功能的实现 283
13.2 用户登录和注销功能的实现 284
实践任务1 用户注册功能的实现 285
实践任务2 用户登录和注销功能的实现 293
实践任务3 个人简介的维护 296
实践任务4 使用过滤器实现个人笔记系统URL级别的权限访问控制 300
第14章 项目实训:个人笔记系统笔记管理模块的设计与实现 302
实践任务1 查询所有笔记功能的开发 302
实践任务2 后台管理面板author.jsp程序的开发 304
实践任务3 添加笔记页面和保存笔记功能的开发 304
实践任务4 查看笔记全文功能的开发 312
实践任务5 编辑笔记和更新笔记功能的开发 318
实践任务6 删除笔记功能的开发 322
实践任务7 对笔记的标题和内容进行模糊查询功能的开发 323
第15章 项目实训:个人笔记系统其他功能模块的设计与实现 325
实践任务1 对笔记发表评论功能的开发 325
实践任务2 查看某个用户发表的评论功能的开发 327
实践任务3 笔记类别名称管理模块的开发 329
实践任务4 笔记标签名称管理模块的开发 332
实践任务5 向首页添加layui固定块 335
附录 337

读者评论

赶紧抢沙发哦!

我要评论

作者介绍

孔祥盛,副教授,长期从事计算机相关教学与科研工作。
精通动态网站开发、系统分析与设计、软件测试、爬虫、数据分析与数据挖掘、SQL Server、MySQL、UML建模、PowerDesigner建模工具、Java编程、JavaEE编程、Python编程、PHP编程、XML、JavaScript、UI设计等。
主编教材《PHP基础与实例教程》,印次20余次;主编教材《MySQL基础与实例教程》,印次10余次;翻译Java专著一部。

推荐用户

购买本书用户

相关图书

人邮微信
本地服务
教师服务
教师服务
读者服务
读者服务
返回顶部
返回顶部