计算机类教材 > 智能科学与技术

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 三种实现方案。通过对比,可以对各种实现方案有更深刻的理解。