计算机类教材 > 智能科学与技术
Jakarta Servlet开发教程——基于Servlet、Spring、SpringBoot案例
书号:9787113304805 套系名称:普通高等教育“十四五”计算机类专业系列教材
作者:肖川 出版日期:2023-10-01
定价:48.00 页码 / 开本:0 /16
策划编辑:翟玉峰 谢世博 责任编辑:包宁
适用专业:计算机类 适用层次:高等教育
最新印刷时间:2023-10-01
资源下载
教学课件
教学素材
习题答案
教学案例(暂无)
教学设计(暂无)
教学视频(暂无)
内容简介
前言
目录
作者介绍
图书特色
本教材介绍用于Web开发的Jakarta Servlet 6.0技术,Servlet是目前Spring及SpringBoot中MVC模块的基础,同时Servlet自身亦可独立地进行Web开发。教材选用Thymeleaf作为网页模板引擎,从技术上看Thymeleaf比JSP更有利于前后端分离,从发展上看采用Thymeleaf可与Spring及SpringBoot保持一致。 本书分16章循序渐进地介绍用Servlet进行Web开发时所需要掌握的各项技术规范;每章一个案例,教材提供了该案例基于Servlet、Spring、SpringBoot的三种实现方法。 本书适合的读者包括Java Web开发者以及高校“Java Web开发”相关课程的学生。
Jakarta Servlet 是一组接口规范,用于支持 Jave Web 应用的开发;诸多 Web 服务器提供了 Jakarta Servlet 的具体实现,这使之具有广泛应用的基础。目前 SpringBoot 框架因其较高的开发效率成为 Java Web 技术选型的首选,这是因为 SpringBoot 框架为了让开发者可以更多地关注业务功能,而对底层 Servlet 技术细节进行了封装,封装层次为 SpringBoot 封装了 Spring,而 Spring 封装了 Jakarta Servlet。封装的好处是界面友好、降低了使用门槛,封装的弊端是缺少对细节的掌控、提高了个性化定制的成本。本书抛开上层的封装框架,直接用底层的 Jakarta Servlet 技术进行 Web 应用开发。作为对比,本书亦提供基于 SpringBoot 框架及 Spring 框架的实现方案。 根据教育部新工科建设的方针,高校的课程要对经济发展和产业转型升级发挥引领和支撑作用。在互联网发展到云计算时代的今天,Servlet 规范历经 6 次版本更迭,最新版本发布于2022 年 5 月 12 日。了解、掌握新的 Servlet 技术并在网站开发中熟练应用使之服务于区域经济建设,这是开设“Web 网站开发”课程的目的。目前市面上 Web 网站开发相关的教材或者是介绍 Spring 和 SpringBoot 的,或者是讲解 Servlet 和 JSP 的,鲜见把 Servlet 和 Spring及 SpringBoot 合在一起的,而事实上这三者的关系密切,因此编写此教材正是填补现有教材未能三者兼顾的空白。 本书特色 本书主要介绍 Web 开发的底层 Servlet 设计逻辑,也兼顾介绍具有更高开发效率的高层封装框架 Spring 和 SpringBoot。在内容选材上,教材注重切合实际需要,选用业界普遍认可的更新的技术模块,比如用 Thymeleaf 代替 JSP、用 JPA 代替 Mybatis,并增加了 SSE 和WebSocket 等较新的知识,这种选材使得教材的适用范围更广,更具有前瞻性。在课时安排上,本教材适宜每章 2 学时,第 10 章至第 13 章由于内容较多,可以延长至每章 4 学时。本教材的读者应该熟悉 Java 语法、具备 Java 的面向对象知识并对 HTTP 协议有初步的了解。 主要内容 本书分 16 章介绍 Java Web 应用开发技术,每章用一个案例说明其使用场景。每个案例分别用 Jakarta Servlet、Spring、SpringBoot 三种方案实现。由于封装层次不同,案例的不同实现所用方法有所不同。 源码课件 本书的 Java 源码和 PPT 课件可从中国铁道出版社教育资源数字化平台(http://www.tdpress.com/51eds/)上获取。 致谢 感谢我的家人。本书的写作占用了大量的业余时间,若没有家人的理解和支持,本书不可能完成。 感谢中国铁道出版社有限公司的各位编辑。在他们的鼓励和帮助下,本书才会顺利出版。由于编者水平有限,书中难免有不足之处,还望读者海涵和指正。非常期待能够得到广大读者的反馈,在技术之路上互勉共进(编著者邮箱:cxiao@fudan.edu.cn)。 肖 川 2023年5月
第 1 章 Servlet 1 1.1 相关概念 . 1 1.1.1 Servlet 容器 .1 1.1.2 ServletContext 接口.2 1.1.3 Servlet 接口 .4 1.1.4 ServletRequest 接口.5 1.1.5 ServletResponse 接口.6 1.1.6 应答时字符编码 .6 1.2 案例描述 . 7 1.3 用 Servlet 实现 7 1.4 用 Spring 实现. 9 1.5 用 SpringBoot 实现. 11 1.6 小结 . 12 1.7 习题 . 12 第 2 章 过滤器 13 2.1 相关概念 . 13 2.1.1 过滤器概念 . 13 2.1.2 包装器. 15 2.1.3 配置过滤器 . 15 2.2 案例描述 . 16 2.3 用 Servlet 实现 17 2.4 用 Spring 实现. 19 2.5 用 SpringBoot 实现. 20 2.6 小结 . 21 2.7 习题 . 21 第 3 章 显示静态资源 23 3.1 相关概念 . 23 3.1.1 访问 jar 包资源 . 23 3.1.2 路径匹配 .23 3.1.3 ServletResponse 的关闭 .25 3.2 案例描述25 3.3 用 Servlet 实现.26 3.4 用 Spring 实现 .27 3.5 用 SpringBoot 实现 .28 3.6 小结29 3.7 习题29 第 4 章 显示模板网页 . 30 4.1 相关概念30 4.1.1 Thymeleaf.30 4.1.2 ServletContext 命名属性 .32 4.1.3 事件与监听器32 4.1.4 注册监听器33 4.2 案例描述34 4.3 用 Servlet 实现.35 4.4 用 Spring 实现 .38 4.5 用 SpringBoot 实现 .40 4.6 小结41 4.7 习题41 第 5 章 非阻塞输出 . 42 5.1 相关概念42 5.1.1 异步输出 .42 5.1.2 AsyncContext.43 5.1.3 WriteListener44 5.2 案例描述44 5.3 用 Servlet 实现.45 5.4 用 Spring 实现 .49 5.5 用 SpringBoot 实现. 50 5.6 小结 . 50 5.7 习题 . 50 第 6 章 分派请求 51 6.1 相关概念 . 51 6.1.1 委托的分类 . 51 6.1.2 获取 RequestDispatcher 对象 52 6.1.3 使用 RequestDispatcher 对象 53 6.1.4 分派方法的区别 . 53 6.2 案例描述 . 55 6.3 用 Servlet 实现 55 6.4 用 Spring 实现. 58 6.5 用 SpringBoot 实现. 59 6.6 小结 . 60 6.7 习题 . 60 第 7 章 会话 . 61 7.1 相关概念 . 61 7.1.1 会话跟踪机制 . 61 7.1.2 HttpSession 62 7.1.3 在 Thymeleaf 的 URL 中 传递参数. 62 7.2 案例描述 . 62 7.3 用 Servlet 实现 64 7.4 用 Spring 实现. 67 7.5 用 SpringBoot 实现. 69 7.6 小结 . 70 7.7 习题 . 70 第 8 章 提交表单 71 8.1 相关概念 . 71 8.1.1 请求时字符编码 . 71 8.1.2 输入数据绑定 . 72 8.1.3 输出数据绑定 . 72 8.1.4 sendRedirect(.)方法 . 73 8.2 案例描述73 8.3 用 Servlet 实现.74 8.4 用 Spring 实现 .91 8.5 用 SpringBoot 实现 .96 8.6 小结97 8.7 习题97 第 9 章 文件上传及下载 . 98 9.1 相关概念98 9.1.1 表单的 enctype 属性98 9.1.2 Multipart 99 9.2 案例描述99 9.3 用 Servlet 实现.101 9.4 用 Spring 实现 .110 9.5 用 SpringBoot 实现 .115 9.6 小结115 9.7 习题115 第 10 章 验证用户输入 . 116 10.1 相关概念116 10.1.1 预定义的验证注解117 10.1.2 自定义的验证注解118 10.2 案例描述118 10.3 用 Servlet 实现.119 10.4 用 Spring 实现 .127 10.5 用 SpringBoot 实现 .133 10.6 小结134 10.7 习题134 第 11 章 国际化 . 135 11.1 相关概念135 11.1.1 请求时地区设置135 11.1.2 应答时地区设置136 11.2 案例描述136 11.3 用 Servlet 实现.137 11.4 用 Spring 实现 .147 11.5 用 SpringBoot 实现. 153 11.6 小结 . 154 11.7 习题 . 154 第 12 章 JPA .155 12.1 相关概念 . 155 12.1.1 JPA 概述 155 12.1.2 基本注解 . 157 12.1.3 对象的状态转换 . 158 12.2 案例描述 . 159 12.3 用 Servlet 实现 160 12.4 用 Spring 实现. 168 12.5 用 SpringBoot 实现. 174 12.6 小结 . 175 12.7 习题 . 175 第 13 章 RESTful 服务 .176 13.1 相关概念 . 176 13.1.1 RESTful. 176 13.1.2 非阻塞输入 . 177 13.2 案例描述 . 177 13.3 用 Servlet 实现 178 13.4 用 jersey 框架实现 rs-client 187 13.5 用 Spring 实现. 193 13.6 用 SpringBoot 实现. 194 13.7 小结 . 195 13.8 习题 . 195 第 14 章 SSE196 14.1 相关概念 . 196 14.1.1 SSE 特点 196 14.1.2 事件队列 . 197 14.2 案例描述 . 197 14.3 用 Servlet 实现.198 14.4 用 Spring 实现 .209 14.5 用 SpringBoot 实现 .211 14.6 小结211 14.7 习题211 第 15 章 WebSocket 213 15.1 相关概念213 15.1.1 WebSocket 概述 213 15.1.2 事件驱动 API 214 15.2 案例描述215 15.3 用 Servlet 实现.215 15.4 用 Spring 实现 .218 15.5 用 SpringBoot 实现 .222 15.6 小结222 15.7 习题223 第 16 章 异常的统一处理 . 224 16.1 相关概念224 16.1.1 sendError(.)方法.224 16.1.2 出错处理 Servlet 224 16.2 案例描述225 16.3 用 Servlet 实现.226 16.4 用 Spring 实现 .228 16.5 用 SpringBoot 实现 .229 16.6 小结231 16.7 习题231 附录 A 安装及设置 232 附录 B 初始项目 238 附录 C 注解式配置 240 参考文献 242
肖川,复旦大学计算机科学技术学院教师、工程师。多年从事软件项目开发及计算机编程教学,著有教材《Java网络编程进阶——从BIO到RPC》、《计算机网络与网页制作——Dreamweaver CS5案例教程》;目前承担的教学课程包括“Java Web开发”、“Python程序设计”等,研究方向为计算机音频检索。
(1)遵循 Jakarta Servlet 6.0 规范。 (2)选用 Thymeleaf 作为页面模板引擎,以便于前后端分离。 (3)渐进式案例。每一章案例都是在上一章案例的基础上进行扩展,把上一章案例的项目副本作为本章案例项目的起点;每一章案例的实现只描述本章所扩展的内容。 (4)每章案例均采用 Servlet、Spring、SpringBoot 三种实现方案。通过对比,可以对各种实现方案有更深刻的理解。