Java Web期末复习:HTML核心考点与表单提交全解析

期末复习的节奏总是来得又快又猛。Java Web 这门课不像纯后端理论课,它涉及的知识面很杂——从 Tomcat、Servlet、JSP 一路到前端页面的 HTML、CSS、JavaScript 都要考。很多同学复习到 HTML 这一节,容易陷入一个误区:把它当成前端专业课去啃,结果越看越偏。实际上,Java Web 考试里的 HTML 考点是非常聚焦的,它不会考你多炫酷的 CSS 动画,也不会让你写一堆 JavaScript 算法,它考的是你能否理解“浏览器页面是怎么组织起来的、页面数据是怎么和后台 Servlet 交互的”。

这篇笔记就是围绕【Java EE(Java Web)期末复习】中“HTML”这一节整理出来的,覆盖了我在复习过程中认为最核心的知识点、最容易出现在试卷上的细节,以及几个我实际踩过的坑。内容适合正在准备 Java Web 期末考的同学,也适合学完 Servlet/JSP 后想回头把 HTML 基础补扎实的人。我会尽量按照考试视角来梳理,而不是按一本前端教材的顺序去罗列。

1. 先搞清楚一件事:Java Web 考试里的 HTML,到底在考什么

1.1 Java Web 一次请求的完整链路

很多同学复习 HTML 的时候是“孤立”地复习,把 HTML 标签背了一遍,但等到做综合题时还是不会。根本原因是没有把 HTML 放进 Java Web 的运行链路中去看。

一个典型的 Java Web 请求流程是这样:用户在浏览器地址栏输入 URL,或者点击页面上的超链接、提交表单按钮,浏览器将请求发送到 Tomcat 服务器;服务器根据 URL 找到对应的 Servlet 或者 JSP;Servlet 在 service/doGet/doPost 方法里处理业务逻辑,比如查询数据库、做判断计算;处理完成后,服务器把结果通过响应对象返回给浏览器。返回的内容本质上就是一串 HTML 文本;浏览器拿到这串 HTML 后,解析它并渲染成我们看到的图文页面。

所以,HTML 在 Java Web 体系里扮演的角色,是用户交互界面的载体。是用户在浏览器上直接看到、操作的那部分内容。它可以是由一个静态的 test.html 文件提供的,也可以是由 JSP 页面动态生成的,还可以是 Servlet 里通过 response.getWriter().println("...") 一行一行拼出来的。归根到底,前端最终呈现的都是 HTML。

1.2 课程考 HTML 的真实意图

Java Web 课程对 HTML 的考核,一般不是考察你会不会做精美的网站,而是考察三件事:第一,你能不能写出一份结构完整、语法规范的页面,让浏览器正常解析;第二,你会不会用表单把用户输入的数据提交给后台,并且能正确配置 name、action、method 这些属性;第三,你能不能结合 JSP/Servlet 知识,理解页面中嵌入 Java 代码后变量是如何输出的。

和纯 Web 前端课程相比,考核侧重点明显不同。可以通过下面这张对比表快速理解:

对比项 纯前端课程 Java Web 课程
HTML 占比 只是基础,重点在 CSS/JavaScript 常与表单提交、JSP 结合考察
核心目标 页面美观、交互丰富 结构正确、数据能提交到后台
表单知识 强调校验、样式 强调 name 属性、method、action
后端结合 通常不考虑 必须理解 Servlet 接收参数的逻辑
重点标签 布局、动画相关 表格、表单、超链接、列表等

如果你只是应对这门课的期末考试,复习重点应该放在“结构准确”和“表单交互”这两条线上,而不是陷入前端美学细节。

1.3 我推荐的复习顺序

按我的复习经验,比较高效的学习顺序是:先熟悉标准 HTML 文档骨架和字符集设置(这是最容易被扣分但最简单的地方);接着把高频基础标签过一遍,包括文本标签、超链接、图片、列表;然后单独花时间攻克表格 table 中的行合并和列合并;最后花最多精力去练表单 form,因为表单是前后端交互的桥梁,也是 Java Web 考试中 HTML 部分最核心的出题方向。下面各节基本就是按这个顺序展开的。

需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。

2. HTML 文档结构与字符集:写对开头,后面才不慌

2.1 一个标准 HTML5 页面的骨架

我在复习时发现,不少同学能记住一堆标签,但考试时要求“写一个完整的 HTML 页面”,却会漏掉 DOCTYPE 声明或者 meta 标签。这类题属于送分题,但也是最容易因为不细心而丢分的题。一个标准的 HTML5 页面骨架如下:

html复制<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>页面标题</title>
</head>
<body>
    这里是页面显示的内容
</body>
</html>

逐行解释一下每个部分的作用。第一行 是文档类型声明,它的作用是告诉浏览器:当前这个文件采用的是 HTML5 标准。没有这一行,浏览器可能进入“怪异模式”(Quirks Mode),解析规则变得不可预测,这在一些老浏览器上会引发布局错乱。第二行 是根标签,lang 属性声明页面主要语言是简体中文,这个属性对搜索引擎优化和屏幕阅读器都友好。head 标签里放的是页面的“元信息”,不会直接显示在页面主体中;title 标签里的文字会显示在浏览器标签卡上,是搜索引擎抓取页面标题的重要依据。body 标签里才是用户真正能看到的内容。meta charset="UTF-8" 用于声明字符编码方式,与中文乱码问题直接相关。

2.2 charset 与乱码问题

复习到字符集这块,我建议把“乱码”的来龙去脉搞清楚,因为考试中经常会在综合题里埋一个关于中文乱码的细节。乱码的本质是编码和解码使用了不同的字符集。你写 HTML 文件时,记事本或 IDE 默认帮你用某种编码保存了文件;浏览器读取文件时,又要根据某种编码规则去解析。两边如果不一致,中文就会变成一片乱码。

HTML5 的规范推荐使用 UTF-8 编码。UTF-8 是一种可变长度的字符编码,能够兼容绝大多数国家的文字,所以现代 Web 开发几乎默认使用 UTF-8。要保证不乱码,需要考虑两点:一是 HTML 文件本身的保存编码格式是 UTF-8;二是 HTML 页面里声明了 。其中,这个 meta 标签最好放在 head 区域尽量靠前的位置,因为浏览器从上往下解析 HTML 时,越早遇到编码声明,就越不容易在解析过程中出现字符误判。曾经我遇到过一种情况:文件是在 Windows 记事本里编辑并另存为 UTF-8 编码的,但文件里没有写 meta charset,浏览器默认用系统本地编码(比如 GBK)去解析,结果页面上中文全部乱掉了。后来我养成一个习惯:每次新建 HTML 文件,先把 写上,再开始写内容。

2.3 HTML 语法的基础规则

在 Java Web 课上,老师未必会专门拿出一节课讲 HTML 语法,但考试时会隐性考察。把这些规则总结在这里:

  • 标签一般成对出现,有开始标签和结束标签,比如

    内容

    ;也有少部分自闭合标签,比如

  • HTML5 规范中,标签名和属性名大小写不敏感, 和 都能解析,但工程实践普遍使用小写形式,代码风格统一。
  • 属性值建议用双引号包裹,虽然 HTML5 允许部分情况下省略引号,但加上引号最稳妥,也方便后续通过 JavaScript 获取属性。
  • HTML 中多个连续空格、换行、Tab 在浏览器渲染时都会被折叠成一个空格。如果确实需要显示连续多个空格,应使用空格实体  。
  • HTML 注释的写法是 ,在浏览器中不会显示,但在查看网页源代码时可以看到。这个注释写法经常考,因为它和 Java 注释(//、/* /)、CSS 注释(/ */)容易记混。

我在复习这节时给自己编了一句口诀:“声明、根、头、元、体”,意思是一个 HTML 页面依次要有文档声明、html 根标签、head 头部、头部里的元信息 meta、以及 body 主体。顺着这句话,每当考试要求写完整页面时,先在心里默念一遍,就能避免漏写结构。

3. 高频基础标签:文本、超链接、图片、列表

3.1 标题、段落和分隔线

内容类页面最常用到的就是标题标签和段落标签。标题标签从

,级别从高到低,字号也从大到小。从语义上讲,h1 一般用于页面或文章的主标题,一个页面中尽量只出现一次;h2~h6 用于小节标题,形成清晰的层级结构。这在考试中不算硬性考点,但在页面设计题中会给老师留下好的印象。

段落标签

用于包裹一段文字,浏览器会在段落前后自动添加一些外边距。与段落配套的还有换行标签
和水平线标签


。需要注意,

标签之间的换行是带有垂直间距的换行,而
直接在当前行内换行,没有额外间距。很多同学想要在页面上实现“换行但不要太多空白”,结果连续写了多个

标签,导致段落间空隙过大,这种问题在写页面时很常见。

3.2 文字样式与语义化标签

早期 HTML 使用 这样的标签控制文字外观,但 HTML5 标准中 已经被废弃,不推荐使用。现在更合理的做法是使用具有语义的标签。 表示重要内容,浏览器默认加粗显示; 表示强调内容,浏览器默认斜体显示。而 只是单纯的加粗、 只是单纯的斜体,不含“重要性”或“强调”的语义。

这段知识点在考试中容易以选择题形式出现,比如问“下列哪个标签表示强调语义”之类。此外,

是两个极其重要的无语义容器标签:
是块级元素,常用于划分页面的大区块; 是行内元素,常用于在文本中圈出一小段并附加样式或脚本。Java Web 里用 JSP 循环输出商品列表时,最常见的页面结构就是
,这种结构会反复出现。

3.3 超链接和图片资源路径

超链接是 Web 页面区别于普通文档的重要能力,基本语法是:

html复制<a href="https://www.example.com" target="_blank">点击访问</a>

href 的值可以是绝对 URL,例如 https:// 开头的完整地址;也可以是相对 URL,比如 login.html、./login.html、../index.jsp。target="_blank" 表示在新标签页打开链接;如果不写 target,默认是在当前页面跳转。还有一种常见写法是 href="#top",表示跳转到页面内 id 为 top 的元素位置,这种锚点跳转在长页面里很常用。

图片标签的基本语法是:

html复制<img src="images/logo.png" alt="网站Logo" width="120" height="60">

src 指定图片路径,alt 是图片加载失败时的替代文本,也对屏幕阅读器友好。width 和 height 可以只写其中一个,另一个会按比例缩放。在我踩过的坑中,路径问题是大头。如果页面文件在项目 web 目录下的 pages/ 目录中,图片放在 web 目录下的 images/ 目录中,那么正确的相对路径是 ../images/logo.png。如果多写一层或者少写一层,浏览器控制台就会报 404 找不到图片。考试中有时会给你一个目录结构图,问你某个页面里图片的 src 路径怎么写,这一类题目需要静下心去数目录层级,平时练几次就能掌握。

3.4 有序列表与无序列表

列表在页面中无处不在,比如菜单项、新闻列表、步骤说明等。无序列表用

    ,每个列表项用
  • ;有序列表用
      ,同样每个列表项用
    1. 。浏览器会自动为 ul 的 li 显示圆点符号,为 ol 的 li 显示数字序号。

      还有一种自定义列表

      ,包含
      (定义标题)和
      (定义描述)。在期末复习资料站、商品规格展示等场景中比较常用。列表标签之间的嵌套也常考,最典型的就是二级菜单,用一层 ul 里嵌套另一个 ul 来实现。书写时要注意层级缩进清晰,否则结束标签一对多,页面结构就会错乱。

      如果考试卷里要求写“请用 HTML 实现一个新闻列表,要求带有编号”,你应当优先想到有序列表

        。这一点看起来简单,但很多同学第一反应是用手写数字加

        标签去模拟,完全不灵活,也不符合语义。

        3.5 CSS 与 JavaScript 的简单引入方式

        Java Web 课程里的 HTML 题目偶尔会附带考察 CSS 和 JavaScript 的引入。外联 CSS 的写法放在 区域:

        html复制<link rel="stylesheet" href="css/style.css">
        

        外联 JavaScript 文件通常放在 body 结束标签之前,以避免阻塞页面的渲染:

        html复制<script src="js/main.js"></script>
        

        内联样式的写法是在标签上添加 style 属性,例如

        ;内联脚本的写法是直接在页面中写