JavaWeb 复习讲义
原始讲义

从一张网页到一条数据库记录,把 HTML、CSS、JavaScript、HTTP、Servlet、会话、JSP、过滤器、JDBC 串成一条完整的线。

适用对象:学完 JavaWeb 课程、准备期末考试与课程设计的学生 使用方式:第一遍按顺序读,第二遍只看每章的「本章小结」与「自测」,第三遍只做第 12 章的自测卷


如何使用这份讲义

这份讲义由课程配套的八份资料(HTML&CSS、JavaScript、HTTP&Tomcat&Servlet、Request&Response、会话技术、JSP、Filter&Listener、JDBC)加上响应状态码速查表重新编排而成。编排上做了三件事:

  1. 重排顺序。原始资料按授课进度排列,同一份 PDF 里常常前半段讲协议、后半段讲容器,知识点被切得很碎。本讲义按"看得见的页面 → 看不见的协议 → 服务端的程序 → 跨请求的状态 → 工程化的分层"这条认知顺序重新切成六部分十二章,让每一章都只依赖前面已经讲过的内容。
  2. 补齐断层。原始资料偏课堂口语,很多地方只给结论、跳过原理(例如为什么要 setCharacterEncoding、转发和重定向到底差在哪、Session 为什么依赖 Cookie)。这些位置统一用带标签的引用块补写:【补充】 讲原理与背景,【易错点】 讲实际容易出错的地方,【对比】 给易混概念的对照,【考点】 给考试与面试的高频结论。
  3. 标出难度。每章开头标注星级难度与前置章节,方便你按自己的薄弱环节跳读;每章结尾有「本章小结」(用来考前扫读)与「自测」(用来查漏)。

原文的技术表述、属性说明、代码示例一律保留,只做顺序调整、衔接补写,以及 PDF 排版造成的断行与错位的还原。所以你在讲义里看到的每一段定义、每一张属性表、每一段可运行代码,都能在原始资料里找到出处。

【补充】

讲义里的代码都可以直接抄进 IDEA 或浏览器运行。如果你发现某段代码"看着对但跑不起来",先检查三件事:包名是否与你的工程一致、web.xml 的版本头是否匹配你的 Tomcat、数据库连接的用户名密码是否改成了你自己的。


全书知识地图

先看一张全局图。这张图回答一个问题:当你在浏览器里点下"登录"按钮,究竟发生了什么?

┌────────────────────────── 浏览器(前端三件套) ──────────────────────────┐
│  第1章 HTML   结构:表单、输入框、按钮      —— 数据从哪采集             │
│  第2章 CSS    表现:让表单好看              —— 数据长什么样             │
│  第3章 JS     行为:提交前先校验手机号格式  —— 数据出发前先自检         │
└───────────────────────────────────┬─────────────────────────────────────┘
                                    │ 第4章 HTTP:把数据打包成请求报文
                                    │   POST /brand/login HTTP/1.1
                                    │   Content-Type: application/x-www-form-urlencoded
                                    ▼
┌────────────────────────── Tomcat(Servlet 容器) ───────────────────────┐
│  第5章 容器接住请求,按 urlPattern 找到对应的 Servlet,开一个线程执行   │
│                                                                        │
│  第6章 Request   ← 从报文里取出 username/password                      │
│  第7章 会话      → 校验通过后把用户放进 Session,发回 JSESSIONID       │
│  第9章 Filter    ↕ 在 Servlet 之前之后横插一刀:编码、登录校验、日志    │
│                                                                        │
│  第8章 JSP/EL/JSTL → 把结果渲染成 HTML 写回响应体                       │
│  第10章 JDBC     → 需要查库时,通过连接池拿连接、预编译 SQL、取结果集   │
└───────────────────────────────────┬─────────────────────────────────────┘
                                    ▼
                             MySQL(数据落地)

把这张图拆成六部分,就是本讲义的结构:

部分章主题概括难度
第一部分 基础篇第1章Web 导论与 HTML网页是数据的展示层★☆☆☆☆
第2章CSS 样式与页面美化让展示层能看★★☆☆☆
第3章JavaScript 与 DOM 编程让展示层会动、会自检★★★☆☆
第二部分 协议与容器第4章HTTP 协议与响应状态码前后端之间唯一的语言★★☆☆☆
第5章Tomcat 与 Servlet服务端程序长什么样★★★☆☆
第三部分 请求与响应第6章Request 与 Response一个 Servlet 的全部工作★★★☆☆
第四部分 状态保持与视图第7章会话技术:Cookie 与 SessionHTTP 无状态,怎么记住你★★★★☆
第8章JSP、EL 与 JSTL把 Java 从页面里赶出去★★★★☆
第五部分 进阶与实战第9章Filter 与 Listener横切关注点与全局事件★★★★☆
第10章JDBC 与数据库访问程序与数据的最后一公里★★★☆☆
第11章综合实战把十章拼成一个能跑的系统★★★★★
第六部分 自测与附录第12章期末自测卷与查漏补缺用一张卷子定位薄弱点★★★★★

难度曲线说明

本讲义的难度分布并不均匀,全书按掌握方式分成三个阶段:

【考点】

期末卷子的分值分布通常与这条曲线同构:选择题集中在第一段(约占 40%),简答与读程序题集中在第二段(约占 40%),综合设计题集中在第三段(约占 20%)。如果你的时间不够,优先保证第一段的"记忆题"不丢分,再把第二段的对比类问题(转发/重定向、Cookie/Session、Statement/PreparedStatement)背熟。


三轮复习法

第一轮:通读建图(约 6 小时) 按章顺序读一遍,不要纠结细节,读完每章只做一件事:把「本章小结」抄成一张便签,贴在知识地图上对应的位置。读完十二章,你应该能不看书画出上面那张链路图。

第二轮:专题突破(约 8 小时) 按"横向专题"重读,这是本讲义重排顺序后最大的好处。至少做这四个专题:

专题涉及章节要能回答的问题
数据的流动第1、6、7、10章用户在表单里输入的一个字符串,经过哪些编码转换才变成数据库里的一行?
状态与作用域第6、7、8章page / request / session / application 四个域各活多久、谁能看见?
请求的分发第5、6、9章转发、重定向、过滤器、监听器分别在请求生命周期的哪个时刻介入?
页面的演进第6、8章从 out.print("<html>") 到 JSP 再到 EL/JSTL,每一步解决了什么问题?

第三轮:模考补漏(约 3 小时) 只做第 12 章的自测卷,限时完成,对答案后按错题回到对应章节的「本章小结」。如果某一章的错误率超过 30%,说明那一章的"为什么"没读懂,需要回去看【补充】块。


术语速查

读之前先把这几个词的含义确定下来,后面每一章都会反复用到:

术语定义首次出现
Web全球广域网(万维网),基于 HTTP 协议、用浏览器访问的信息系统第1章
JavaWeb用 Java 技术解决 Web 互联网领域问题的一整套技术栈第1章
HTML超文本标记语言,负责网页的结构第1章
CSS层叠样式表,负责网页的表现第2章
JavaScript运行在浏览器里的脚本语言,负责网页的行为第3章
HTTP超文本传输协议,浏览器与服务器之间传输数据的规则第4章
请求 / 响应浏览器发出的一次"要"与服务端返回的一次"给",成对出现第4章
Servlet运行在服务端、用来处理请求并生成响应的 Java 程序第5章
容器管理和运行 Servlet 的环境(如 Tomcat),负责创建、调用、销毁第5章
会话一次浏览器与服务器之间连续的交互过程,可跨多次请求第7章
作用域数据存放的"可见范围",决定谁能取到、能取多久第6章
过滤器在请求到达 Servlet 之前、响应返回浏览器之前插一脚的组件第9章
JDBCJava 访问关系型数据库的标准 API第10章

阅读约定