新書推薦:
《
武人琴音(十周年纪念版 逝去的武林系列收官之作 形意拳一门三代:尚云祥、韩伯言、韩瑜的人生故事 凸显百年武人命运)
》
售價:NT$
199.0
《
剑桥斯堪的纳维亚戏剧史(剑桥世界戏剧史译丛)
》
售價:NT$
704.0
《
禅心与箭术:过松弛而有力的生活(乔布斯精神导师、世界禅者——铃木大拙荐)
》
售價:NT$
301.0
《
先进电磁屏蔽材料——基础、性能与应用
》
售價:NT$
1010.0
《
可转债投资实战
》
售價:NT$
454.0
《
王氏之死(新版,史景迁成名作)
》
售價:NT$
250.0
《
敢为天下先:三年建成港科大
》
售價:NT$
352.0
《
直观的经营:哲学视野下的动态管理
》
售價:NT$
407.0
|
編輯推薦: |
《JSP & Servlet学习笔记(第3版)从Servlet到Spring Boot》是作者多年来教学实践经验的总结,汇集了学员在学习JSP & Servlet或认证考试时遇到的概念、操作、应用等各种问题及解决方案
? 基于Servlet 4.0Java SE 8重新改版,无论章节架构还是范例程序代码,都做了全面更新
? 详细介绍了OWASP TOP10、CWE、CVE,讨论了会话安全、密码管理、Java EE安全机制、CSRF等Web安全基本概念
? 增加了对Spring、Spring MVC、Spring Boot的入门介绍,认识Web MVC框架与快速开发工具的使用
? 涵盖了文本处理、图片验证、自动登录、验证过滤器、压缩处理、线上文件管理、邮件发送等实用范例
? 以微博项目贯穿全书,将JSP & Servlet技术应用于实际项目开发之中,并使用重构方式来改进应用程序架构
? 提供练习的Lab操作文档,方便读者掌握练习重点,将IDE操作纳入教学内容,使读者能与实践结合
? 《JSP & Servlet学习笔记(第3版)从Servlet到Spring Boot》适合
|
內容簡介: |
? 涵盖SCWCD考试范围 ? Servlet 4.0新功能介绍 ? 加强Web安全基本观念 ? 衔接Spring MVC、Spring Boot ? 提供Lab操作文档
|
關於作者: |
林信良网名:良葛格,毕业于台湾大学电机工程学系。擅长技术写作、翻译与教育培训。喜好研究程序语言、框架、社群,从中学习设计、典范及文化,并利用闲暇之余记录所学技术,涵盖CC、Java、RubyRails、Python、JavaScript、Haskell、OpenSCAD等领域。目前出版的著作有《JSP & Servlet学习笔记第2版》《Spring技术手册》《Java JDK 8 学习笔记》《Java JDK 9 学习笔记》,译作有《Ajax实战手册》《jQuery实战手册(第2版)》。
|
目錄:
|
目 录
Chapter 1 Web应用程序简介 1
1.1 Web应用程序基础 2
1.1.1 关于HTML 2
1.1.2 URL、URN与URI 3
1.1.3 关于HTTP 5
1.1.4 HTTP请求方法 6
1.1.5 有关URI编码 9
1.1.6 后端与前端 11
1.1.7 Web安全概念 13
1.2 ServletJSP简介 14
1.2.1 何谓Web容器 14
1.2.2 Servlet与JSP的关系 16
1.2.3 关于MVCModel 2 19
1.2.4 Java EE简介 22
1.3 重点复习 23
Chapter 2 编写与设置Servlet 24
2.1 第一个Servlet 25
2.1.1 准备开发环境 25
2.1.2 第一个Servlet程序 27
2.2 在Hello之后 29
2.2.1 关于HttpServlet 30
2.2.2 使用@WebServlet 32
2.2.3 使用web.xml 33
2.2.4 文件组织与部署 36
2.3 进阶部署设置 37
2.3.1 URL模式设置 37
2.3.2 Web文件夹结构 40
2.3.3 使用web-fragment.xml 41
2.4 重点复习 44
2.5 课后练习 45
Chapter 3 请求与响应 46
3.1 从容器到HttpServlet 47
3.1.1 Web容器做了什么 47
3.1.2 doXXX方法 49
3.2 关于HttpServletRequest 52
3.2.1 处理请求参数 52
3.2.2 处理请求标头 55
3.2.3 请求参数编码处理 56
3.2.4 getReader、getInputStream读取内容 58
3.2.5 getPart、getParts取得
上传文件 62
3.2.6 使用RequestDispatcher调派请求 67
3.3 关于HttpServletResponse 73
3.3.1 设置响应标头、缓冲区 73
3.3.2 使用getWriter输出字符 75
3.3.3 使用getOutputStream输出
二进制字符 78
3.3.4 使用sendRedirect、
sendError 80
3.4 综合练习 81
3.4.1 微博应用程序功能概述 82
3.4.2 实现会员注册功能 83
3.4.3 实现会员登录功能 88
3.5 重点复习 89
3.6 课后练习 90
Chapter 4 会话管理 92
4.1 会话管理基本原理 93
4.1.1 使用隐藏域 93
4.1.2 使用Cookie 96
4.1.3 使用URI重写 100
4.2 HttpSession会话管理 102
4.2.1 使用HttpSession 103
4.2.2 HttpSession会话管理
原理 107
4.2.3 HttpSession与URI重写 109
4.3 综合练习 111
4.3.1 登录与注销 111
4.3.2 会员信息管理 112
4.3.3 新增与删除信息 116
4.4 重点复习 118
4.5 课后练习 119
Chapter 5 Servlet进阶API、过滤
器与监听器 120
5.1 Servlet进阶API 121
5.1.1 Servlet、ServletConfig与GenericServlet 121
5.1.2 使用ServletConfig 123
5.1.3 使用ServletContext 126
5.1.4 使用PushBuilder 128
5.2 应用程序事件、监听器 130
5.2.1 ServletContext事件、
监听器 130
5.2.2 HttpSession事件、
监听器 135
5.2.3 HttpServletRequest事件、
监听器 141
5.3 过滤器 142
5.3.1 过滤器的概念 142
5.3.2 实现与设置过滤器 144
5.3.3 请求封装器 149
5.3.4 响应封装器 153
5.4 异步处理 157
5.4.1 AsyncContext简介 158
5.4.2 异步Long Polling 160
5.4.3 更多AsyncContext细节 163
5.4.4 异步Server-Sent Event 164
5.4.5 使用ReadListener 167
5.4.6 使用WriteListener 169
5.5 综合练习 172
5.5.1 创建UserService 172
5.5.2 设置过滤器 177
5.5.3 重构微博 179
5.6 重点复习 183
5.7 课后练习 185
Chapter 6 使用JSP 186
6.1 从JSP到Servlet 187
6.1.1 JSP生命周期 187
6.1.2 Servlet至JSP的简单
转换 191
6.1.3 指示元素 194
6.1.4 声明、Scriptlet与表达式
元素 197
6.1.5 注释元素 201
6.1.6 隐式对象 201
6.1.7 错误处理 204
6.2 标准标签 208
6.2.1 、标签 208
6.2.2 、与简介 209
6.2.3 深入、与 211
6.2.4 谈谈Model 1 214
6.2.5 XML格式标签 216
6.3 表达式语言EL 217
6.3.1 EL简介 218
6.3.2 使用EL取得属性 220
6.3.3 EL隐式对象 222
6.3.4 EL运算符 223
6.3.5 自定义EL函数 224
6.3.6 EL 3.0 226
6.4 综合练习 227
6.4.1 改用JSP实现视图 228
6.4.2 重构UserService与
member.jsp 231
6.4.3 创建register.jsp、index.jsp、user.jsp 234
6.5 重点复习 242
6.6 课后练习 243
Chapter 7 使用JSTL 244
7.1 JSTL简介 245
7.2 核心标签库 246
7.2.1 流程处理标签 246
7.2.2 错误处理标签 249
7.2.3 网页导入、重定向、URI
处理标签 250
7.2.4 属性处理与输出标签 252
7.3 I18N兼容格式标签库 254
7.3.1 I18N基础 254
7.3.2 信息标签 257
7.3.3 地区标签 259
7.3.4 格式标签 264
7.4 XML标签库 267
7.4.1 XPath、XSLT基础 267
7.4.2 解析、设置与输出标签 270
7.4.3 流程处理标签 271
7.4.4 文件转换标签 272
7.5 函数标签库 274
7.6 综合练习 275
7.6.1 修改index.jsp、
register.jsp 275
7.6.2 修改member.jsp 277
7.6.3 修改user.jsp 278
7.7 重点复习 278
7.8 课后练习 280
Chapter 8 自定义标签 281
8.1 Tag File自定义标签 282
8.1.1 Tag File简介 282
8.1.2 处理标签属性与Body 285
8.1.3 TLD文件 287
8.2 Simple Tag自定义标签 288
8.2.1 Simple Tag简介 288
8.2.2 了解API架构与生命
周期 290
8.2.3 处理标签属性与Body 293
8.2.4 与父标签沟通 296
8.2.5 TLD文件 300
8.3 Tag自定义标签 301
8.3.1 Tag简介 301
8.3.2 了解架构与生命周期 302
8.3.3 重复执行标签Body 304
8.3.4 处理Body运行结果 306
8.3.5 与父标签沟通 309
8.4 综合练习 311
8.4.1 重构使用DAO 312
8.4.2 加强user.jsp 315
8.5 重点复习 317
8.6 课后练习 319
Chapter 9 整合数据库 320
9.1 JDBC入门 321
9.1.1 JDBC简介 321
9.1.2 连接数据库 327
9.1.3 使用Statement、
ResultSet 331
9.1.4 使用PreparedStatement、CallableStatement 335
9.2 JDBC进阶 338
9.2.1 使用DataSource取得
连接 338
9.2.2 使用ResultSet卷动、更新
数据 341
9.2.3 批次更新 343
9.2.4 Blob与Clob 344
9.2.5 事务简介 350
9.2.6 metadata简介 356
9.2.7 RowSet简介 358
9.3 使用SQL标签库 363
9.3.1 数据源、查询标签 363
9.3.2 更新、参数、事务标签 364
9.4 综合练习 366
9.4.1 使用JDBC实现DAO 366
9.4.2 设置JNDI部署描述 369
9.4.3 实现首页最新信息 370
9.5 重点复习 374
9.6 课后练习 375
Chapter 10 Web容器安全管理 376
10.1 了解与实现Web容器安全
管理 377
10.1.1 Java EE安全基本
概念 377
10.1.2 声明式基本身份验证 379
10.1.3 容器基本身份验证
原理 384
10.1.4 声明式窗体验证 385
10.1.5 容器窗体验证原理 386
10.1.6 使用HTTPS保护
数据 387
10.1.7 编程式安全管理 389
10.1.8 标注访问控制 391
10.2 综合练习 393
10.2.1 使用容器窗体验证 393
10.2.2 设置DataSource-
Realm 395
10.3 重点复习 396
10.4 课后练习 397
Chapter 11 JavaMail入门 398
11.1 使用JavaMail 399
11.1.1 发送纯文字邮件 399
11.1.2 发送多重内容邮件 401
11.2 综合练习 405
11.2.1 发送验证账号邮件 405
11.2.2 验证用户账号 411
11.2.3 发送重设密码邮件 412
11.2.4 重新设置密码 415
11.3 重点复习 418
11.4 课后练习 419
Chapter 12 Spring起步走 420
12.1 使用Gradle 421
12.1.1 下载和设置Gradle 421
12.1.2 简单的Gradle项目 422
12.1.3 Gradle与Eclipse 423
12.2 认识Spring核心 425
12.2.1 相依注入 425
12.2.2 使用Spring核心 427
12.3 重点复习 430
12.4 课后练习 430
Chapter 13 整合Spring MVC 431
13.1 初识Spring MVC 432
13.1.1 链接库或框架 432
13.1.2 初步套用Spring
MVC 433
13.1.3 注入服务对象与
属性 440
13.2 逐步善用Spring MVC 444
13.2.1 简化控制器 444
13.2.2 建立窗体对象 449
13.2.3 关于Thymeleaf
模板 452
13.3 重点复习 455
13.4 课后练习 456
Chapter 14 简介Spring Boot 457
14.1 初识Spring Boot 458
14.1.1 哈喽!Spring Boot! 458
14.1.2 实现MVC 461
14.1.3 使用JSP 464
14.2 整合IDE 465
14.2.1 导入Spring Boot
项目 465
14.2.2 Spring Tool Suite 466
14.3 重点复习 467
14.4 课后练习 468
Appendix A 如何使用《JSP & Servlet学习笔记(第3版)从Servlet到Spring Boot》项目 469
A.1 项目环境配置 470
A.2 范例项目导入 470
Java EE 78 新功能索引
web.xml版本变动 33
web.xml新增 34
HttpServletRequest新增getHttpServletMapping 39
web.xml新增 57
Part新增getSubmittedFileName 64
web.xml新增 76
HttpServletRequest新增changeSessionId 104
ServletContext新增setSessionTimeout 109
新增PushBuilder 128
新增HttpSessionIdListener 141
新增了GenericFilter、HttpFilter类别 145
ServletInputStream非阻断输入 168
ServletOutputStream非阻断输出 170
Expression Language 3.0 226
|
內容試閱:
|
导 读
这份导读可以让你更了解如何使用《JSP & Servlet学习笔记(第3版)从Servlet到Spring Boot》。
字型
《JSP & Servlet学习笔记(第3版)从Servlet到Spring Boot》内文中与程序代码相关的文字,都用固定宽度字体来加以呈现,以与一般名词作区别。例如,JSP是一般名词,而HttpServlet为程序代码相关文字,使用了固定宽度字体。
新旧版差异
《JSP & Servlet学习笔记(第3版)从Servlet到Spring Boot》是从《JSP & Servlet学习笔记第2版》改版而来的,因此这里说明一下与《JSP & Servlet学习笔记第2版》之间的差异。
就目录上可以看出的主要差异是,删除了《JSP & Servlet学习笔记第2版》第12章从模式到框架,并由新撰写的3个Spring相关章节取代,这是为了从实际的框架中学习,而不是空谈概念;然而,Spring那些章节并不是作为全面探讨Spring之用,而是作为一个衔接,希望从实际的应用程序重构中筛选出对应用程序有益的框架特性,以便逐步掌握框架的本质。
当然,照例要谈一些Java EE 8的功能,相关讨论会放在各章节中适当的地方。由于《JSP & Servlet学习笔记第2版》是基于Java EE 6,为了便于查找Java EE 78的功能介绍,如果发现页左侧有如 图示,就表示提及Java EE 7或Java EE 8功能,《JSP & Servlet学习笔记(第3版)从Servlet到Spring Boot》还提供了Java EE 78功能快速查询目录。
各章节的范例都做了全面改写,由于Java EE 8是基于Java SE 8,范例程序代码会适当使用Java SE 8的特性,例如Lambda与Stream API等。
时至今日,撰写应用程序时必须有相关的安全防护概念,作为一本谈论Web应用程序的书,适时地提及安全概念是必要的,书中谈到了OWASP TOP 10,讨论了Session防护、注入攻击、Cookie安全、密码加盐哈希、跨域伪造请求Cross-Site Request Forgery,CSRF等安全基本观念,并在适当的地方介绍了OWASP Java Encoder、Java HTML Sanitizer等项目的使用。
程序范例
《JSP & Servlet学习笔记(第3版)从Servlet到Spring Boot》大多数范例使用完整的程序实作来展现,如果是用以下方式示范程序代码:
FirstServlet Hello.java
package cc.openhome;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet"hello"
public class Hello extends HttpServlet {
@Override
protected void doGet
HttpServletRequest request, HttpServletResponse response
throws ServletException, IOException {
response.setContentType"texthtml;charset=UTF-8";
String name = request.getParameter"name";
PrintWriter out = response.getWriter;
out.print"";
out.print"";
out.print"";
out.print"Hello";
out.print"";
out.print"";
out.printf" Hello! %s!%n", name;
out.print"";
out.print"";
}
}
范例开始的左边名称为FirstServlet,表示可以在范例文件的samples文件夹中查找相应章节目录,即可找到对应的FirstServlet项目,而右边名称为Hello.java,表示可以在项目中找到Hello.java文件。如果程序代码中出现标号与提示文字,表示后续的内文中会有对应于标号及提示的更详细说明。
原则上,建议每个项目范例都亲自动手撰写,如果由于教学时间或实现时间上的限制,《JSP & Servlet学习笔记(第3版)从Servlet到Spring Boot》有建议进行的练习。在范例开始前有 图示的,表示建议动手实践,而且在范例文件的labs文件夹中有练习项目的基础内容,可以在导入项目后,完成项目中遗漏或必须补齐的程序代码或设置。
如果文中使用以下程序代码,则表示它是一个完整的程序内容,但不是项目的一部分,主要用来展现如何撰写一个完整的文件。
JSP 范例文件
|
|