网络程序设计入门第一章:Web、JSP、Tomcat 到底是什么?

一、前言

很多同学第一次上《网络程序设计》这门课,都会有一种很强的迷惑感:

  • JSP 是什么?

  • Tomcat 是什么?

  • 浏览器为什么能打开我写的页面?

  • HTML、JSP、Servlet 到底什么关系?

  • 这门课和"计算机网络"到底有什么联系?

更麻烦的是,很多教材一上来就开始写代码:

复制代码
<%@ page contentType="text/html;charset=UTF-8" %>
<html>
<body>
Hello World
</body>
</html>

你虽然能照着敲出来,但其实并不知道它为什么能运行。

所以这一章不急着堆代码,而是先把最核心的底层逻辑 讲清楚。

你只要把这一章真正搞懂,后面学表单、JSP、request、session、JavaBean 才不会一直发懵。

这一章的目标只有一个:

搞明白网络程序设计这门课,到底在做什么。


二、什么是网络程序设计

先说最本质的一句话:

网络程序设计,就是让不同计算机上的程序,通过网络进行通信,并完成数据交互和业务处理。

这个定义听起来有点抽象,我们换成更直白的说法。

你平时打开一个网站,比如学校官网、教务系统、电商平台,表面上看只是"点开网页",实际上背后发生的是:

  1. 你的浏览器向服务器发送请求

  2. 服务器接收到请求

  3. 服务器处理数据

  4. 服务器把结果返回给浏览器

  5. 浏览器把结果渲染成你看到的网页

所以这门课的重点,本质上就是研究:

  • 浏览器怎么发请求

  • 服务器怎么接收请求

  • 服务器怎么返回页面

  • 页面之间怎么传数据

  • 用户状态怎么保存

也就是说,这门课不是单纯写页面,而是在学:

浏览器---服务器---页面---数据 这一整套交互机制


三、什么是 Web

很多人会把"网络程序设计"和"网页制作"混为一谈,其实不一样。

1. Web 是什么

Web 可以理解为"基于浏览器访问的信息系统"。

你用浏览器访问:

  • 新闻网站

  • 学校教务系统

  • 论坛

  • 登录注册页面

  • 查询成绩页面

这些都属于 Web 应用。

Web 的核心特点就是:

  • 用户不需要安装专门客户端

  • 直接通过浏览器访问

  • 浏览器负责显示页面

  • 服务器负责处理逻辑和数据


2. Web 应用和普通网页有什么区别

普通静态网页只是固定内容,比如一个纯 HTML 页面:

复制代码
<h1>欢迎来到我的网页</h1>

无论谁打开,看到的都一样。

但 Web 应用不一样。

比如登录页面,张三登录后显示张三的信息,李四登录后显示李四的信息,这就说明页面内容是动态生成的。

所以你可以这样理解:

  • HTML:决定网页长什么样

  • JSP / Servlet / Java:决定网页显示什么内容

  • Tomcat:负责运行这些 Web 程序


四、什么是 B/S 结构

这一部分是网络程序设计最基础的架构概念。

1. B/S 的含义

B/S = Browser / Server

也就是:

  • B(Browser):浏览器端

  • S(Server):服务器端

比如你电脑上的 Chrome、Edge,就是浏览器。

Tomcat 所在的机器,就是服务器。

浏览器不负责复杂业务处理,它主要负责:

  • 显示页面

  • 提交表单

  • 向服务器发送请求

服务器主要负责:

  • 接收请求

  • 执行业务逻辑

  • 查询数据

  • 返回响应结果


2. 一个典型的 B/S 交互流程

以"登录"为例:

第一步:用户输入账号密码

浏览器显示一个登录表单:

复制代码
<form action="login.jsp" method="post">
    用户名:<input type="text" name="username">
    密码:<input type="password" name="password">
    <input type="submit" value="登录">
</form>

第二步:浏览器提交请求

用户点击"登录",浏览器把用户名和密码发给服务器。

第三步:服务器处理请求

服务器拿到数据后判断:

  • 用户名对不对

  • 密码对不对

  • 是否允许登录

第四步:返回结果

服务器返回一个新的页面,比如:

  • 登录成功

  • 登录失败

  • 欢迎你,张三


3. B/S 和 C/S 的区别

B/S 和 C/S 是经常考的概念。

B/S

  • B = 浏览器

  • 用户直接用浏览器访问

  • 部署方便

  • 维护简单

  • 很适合 Web 系统

C/S

  • C = Client,客户端程序

  • 比如 QQ、微信桌面版、游戏客户端

  • 需要安装专门软件

  • 功能通常更强

  • 更新和维护成本更高

你们这门《网络程序设计》主要学的是 B/S 模式


五、浏览器和服务器到底是怎么通信的

这一部分非常关键。

你后面学 request、response、Cookie、Session,全部都建立在这里。

1. 浏览器不是"凭空打开页面"的

当你在浏览器输入:

复制代码
http://localhost:8080/test/index.jsp

这不是"打开本地文件",而是在发起一个 HTTP 请求

这个地址可以拆开理解:

  • http://:使用 HTTP 协议

  • localhost:本机

  • 8080:服务器端口号

  • /test/index.jsp:要访问的资源路径

也就是说,浏览器实际上是在说:

请把 localhost 这台机器上,8080 端口里的 test 项目中的 index.jsp 页面给我。


2. 服务器收到请求后做什么

服务器,比如 Tomcat,收到请求后会判断:

  • 你访问的是哪个项目

  • 你访问的是哪个页面

  • 这个页面是静态资源还是动态资源

  • 如果是 JSP,就先执行 JSP 代码

  • 然后把最终生成的 HTML 返回给浏览器

这句话非常重要:

浏览器不能直接执行 JSP,浏览器只能接收服务器返回的 HTML 结果。

也就是说,浏览器看到的不是 JSP 源码,而是 JSP 执行之后的结果。


3. 请求和响应

网络程序设计里有两个最核心的词:

  • Request(请求)

  • Response(响应)

请求

浏览器发给服务器的数据和访问要求。

比如:

  • 我要访问哪个页面

  • 我提交了什么表单数据

  • 我用的是 GET 还是 POST

响应

服务器返回给浏览器的结果。

比如:

  • 一个 HTML 页面

  • 一段文本

  • 一张图片

  • 一个跳转结果

后面你学 request.getParameter(),其实就是:

从浏览器发来的请求中,把表单数据取出来。


六、什么是 JSP

终于说到 JSP 了。

1. JSP 是什么

JSP 全称是:

Java Server Pages

中文一般叫:Java 服务器页面

你可以把 JSP 理解成:

HTML + Java 代码

也就是在普通网页里,加入 Java 代码,让页面内容能动态变化。

比如你想让网页显示当前时间、用户名、成绩、乘法表、表格,这些动态内容,光靠 HTML 是不够的,就需要 JSP。


2. 为什么需要 JSP

纯 HTML 是静态的。

比如:

复制代码
<h1>欢迎来到系统</h1>

所有人打开看到都一样。

但实际系统中,很多内容都需要动态生成:

  • 欢迎你,张三

  • 当前时间:2026-03-12

  • 成绩:95 分

  • 显示数据库中的学生信息

  • 根据输入的 m、n 画表格

这些都不是固定写死的,所以需要服务器先计算,再返回页面。

JSP 就是干这个的。


3. JSP 的本质

很多初学者以为 JSP 是一种特别神秘的新语言,其实不是。

JSP 本质上还是运行在服务器端的 Java 技术。

它的主要作用就是:

  • 接收请求

  • 嵌入 Java 代码

  • 动态生成 HTML

  • 返回给浏览器

简单理解:

HTML 决定页面样子
JSP 决定页面内容能不能动态变化


七、什么是 Tomcat

如果说 JSP 是你写的程序,那么 Tomcat 就是运行这些程序的环境。

1. Tomcat 是什么

Tomcat 是一个 Web 服务器 / Servlet 容器

你可以把它理解成一个"网页程序运行平台"。

你写好的 JSP 页面,不能像普通 .txt 文件一样双击就运行。
它必须放到服务器里,由服务器来处理。
Tomcat 就负责做这件事。


2. 没有 Tomcat 行不行

不行,至少在你们这门课的学习阶段不行。

因为:

  • HTML 文件浏览器可以直接打开

  • 但 JSP 需要服务器解析执行

  • Tomcat 就是负责解析 JSP、处理请求、返回响应的

所以:

HTML 可以离开 Tomcat 单独看
JSP 不行,JSP 必须依赖服务器环境运行


3. Tomcat 像什么

你可以这样类比:

  • 浏览器 = 顾客

  • JSP 页面 = 菜单/订单处理逻辑

  • Tomcat = 厨房

  • 服务器返回的 HTML = 做好的菜

顾客不能直接进厨房炒菜。

浏览器也不能直接执行 JSP。

它只能向 Tomcat 发请求,再由 Tomcat 处理后返回结果。


八、为什么访问地址里总有 localhost:8080

这也是新手高频疑问。

1. localhost 是什么

localhost 表示本机,也就是你自己的电脑。

所以:

复制代码
http://localhost:8080/

意思就是:

访问我自己电脑上的 8080 端口服务


2. 8080 是什么

8080 是 Tomcat 默认常用端口之一。

端口可以理解成一台计算机里不同程序"对外提供服务的窗口"。

比如:

  • 浏览器访问网页,通常找某个端口

  • Tomcat 默认可能是 8080

  • MySQL 常见是 3306

当你写:

复制代码
http://localhost:8080/test/index.jsp

浏览器就知道去找:

  • 主机:localhost

  • 端口:8080

  • 资源:/test/index.jsp


3. 为什么有时打不开

常见原因有这几个:

1)Tomcat 没启动

最常见。

2)端口写错了

比如 Tomcat 不是 8080,而你还在用 8080 访问。

3)项目路径写错了

项目名不是 test,你却写了 test

4)JSP 文件没放对位置

路径和部署目录不一致。

5)Tomcat 启动报错

比如端口冲突、配置错误。


九、第一个网络程序是怎么跑起来的

这一段你一定要形成完整脑图。

假设你写了一个文件:

复制代码
<%@ page contentType="text/html;charset=UTF-8" %>
<html>
<head>
    <title>第一个 JSP 页面</title>
</head>
<body>
    Hello JSP
</body>
</html>

然后把它部署到 Tomcat 中,浏览器访问:

复制代码
http://localhost:8080/test/hello.jsp

这个过程背后发生了什么?

第一步:浏览器发请求

浏览器告诉服务器:

我要访问 test 项目的 hello.jsp

第二步:Tomcat 接收请求

Tomcat 找到对应文件,发现它是 JSP,不是普通 HTML。

第三步:Tomcat 解析 JSP

Tomcat 会把 JSP 中的内容处理成最终的响应结果。

如果里面有 Java 代码,也会一起执行。

第四步:返回 HTML

Tomcat 把最终页面返回给浏览器。

第五步:浏览器显示结果

浏览器把返回的内容渲染出来,你就看到:

复制代码
Hello JSP

所以一定记住:

你写的是 JSP,浏览器看到的是执行结果。


十、网络程序设计这门课后面到底会学什么

如果你现在还觉得这门课有点散,我给你把后面的知识链串起来。

第一步:先学页面基础

你要先会:

  • HTML 基本标签

  • 表格

  • 表单

  • 提交按钮

  • 输入框

因为用户要先有页面可以操作。


第二步:再学 JSP 动态输出

你要会:

  • <% %>

  • <%= %>

  • for 循环

  • if 判断

因为服务器要根据不同情况生成不同页面。


第三步:再学 request / response

你要知道:

  • 表单提交的数据去哪了

  • 怎么接收用户输入

  • 怎么处理中文乱码

  • 怎么在页面之间传值


你要解决:

  • 用户登录后怎么记住身份

  • 页面跳转后数据怎么保存

  • 为什么 HTTP 本身是无状态的


第五步:再学 JavaBean / Servlet / MVC

这是提高部分,也是课程从"会写小例子"到"能做小项目"的关键。

你会学到:

  • 如何把数据封装起来

  • 如何把页面和业务逻辑分开

  • 如何让项目结构更规范


十一、初学者最容易混淆的几个概念

这一部分很重要,我帮你提前排雷。

1. HTML 和 JSP 的区别

HTML

  • 静态页面

  • 浏览器可直接打开

  • 不能直接写 Java 逻辑

JSP

  • 动态页面

  • 需要服务器运行

  • 可以嵌入 Java 代码


2. 浏览器和服务器的区别

浏览器

负责:

  • 显示页面

  • 提交请求

  • 接收服务器返回结果

服务器

负责:

  • 处理请求

  • 执行 JSP / Servlet

  • 返回响应


3. 请求和响应的区别

请求

浏览器发给服务器

响应

服务器返回给浏览器


4. localhost 和 Internet 网站的区别

localhost

表示访问你自己的电脑

真实网站

表示访问远程服务器

本质一样,只是服务器位置不同。


十二、本章你必须真正记住的 8 句话

这一章内容不少,但真正必须牢牢记住的其实就这 8 句:

  1. 网络程序设计的核心,是浏览器和服务器之间的数据交互。

  2. 这门课主要学的是 B/S 结构,不是桌面软件开发。

  3. 浏览器负责发请求和显示页面,服务器负责处理逻辑。

  4. Web 应用不是单纯网页,而是能动态处理数据的系统。

  5. JSP 本质上是 HTML + Java,用来生成动态页面。

  6. 浏览器不能直接执行 JSP,必须由服务器先处理。

  7. Tomcat 是运行 JSP / Servlet 的服务器环境。

  8. request 是请求,response 是响应,后面很多知识都围绕这两个对象展开。


十三、本章实战任务

这一章虽然以理解为主,但还是建议你做 3 个最基础的练习。

练习1:解释下面地址每一部分的含义

复制代码
http://localhost:8080/test/index.jsp

你要能说清楚:

  • 协议

  • 主机

  • 端口

  • 项目路径

  • 资源路径


练习2:说出 HTML 和 JSP 的区别

至少从这几个角度回答:

  • 是否动态

  • 是否需要服务器

  • 是否能写 Java 代码

  • 浏览器能否直接打开


练习3:用自己的话描述一次网页访问过程

比如访问一个登录页面,写出:

  • 浏览器做了什么

  • Tomcat 做了什么

  • JSP 做了什么

  • 浏览器最后看到了什么


十四、本章小结

这一章我们没有急着堆很多语法,而是先搭建了网络程序设计的完整认知框架。

你现在应该已经明白:

  • 这门课不是单纯写网页,而是在学浏览器和服务器如何交互

  • 课程主体是 B/S 架构

  • JSP 是用来生成动态页面的

  • Tomcat 是 JSP 的运行环境

  • 浏览器不能直接执行 JSP,只能接收服务器处理后的结果

  • 后面所有表单、request、session、Servlet,本质上都是对这一套交互流程的进一步展开

如果这一章你真的吃透,后面学 JSP 代码时就不会只是在"背标签",而是会知道自己到底在做什么。

相关推荐
历程里程碑1 小时前
37 线程安全单例模式深度解析
java·服务器·开发语言·前端·javascript·c++·排序算法
皙然2 小时前
深入解析 Java 中的 final 关键字
java·开发语言·算法
云深麋鹿2 小时前
C++ | 手搓一个string类
开发语言·c++·容器
阿里嘎多学长2 小时前
2026-03-15 GitHub 热点项目精选
开发语言·程序员·github·代码托管
AsDuang2 小时前
Python 3.12 MagicMethods - 51 - __rlshift__
开发语言·python
带娃的IT创业者2 小时前
Python 异步编程完全指南(四):高级技巧与性能优化
开发语言·python·性能优化·asyncio·异步编程·技术博客
格林威2 小时前
工业相机图像高速存储(C#版):直接IO(Direct I/O)绕过系统缓存,附堡盟相机实战代码!
开发语言·人工智能·数码相机·计算机视觉·缓存·c#·视觉检测
刺客xs2 小时前
C++ 11新特性
java·开发语言·c++
虾..2 小时前
Linux 自定义协议完成网络版本计算器
linux·运维·网络