一、前言
很多同学第一次上《网络程序设计》这门课,都会有一种很强的迷惑感:
-
JSP 是什么?
-
Tomcat 是什么?
-
浏览器为什么能打开我写的页面?
-
HTML、JSP、Servlet 到底什么关系?
-
这门课和"计算机网络"到底有什么联系?
更麻烦的是,很多教材一上来就开始写代码:
<%@ page contentType="text/html;charset=UTF-8" %>
<html>
<body>
Hello World
</body>
</html>
你虽然能照着敲出来,但其实并不知道它为什么能运行。
所以这一章不急着堆代码,而是先把最核心的底层逻辑 讲清楚。
你只要把这一章真正搞懂,后面学表单、JSP、request、session、JavaBean 才不会一直发懵。
这一章的目标只有一个:
搞明白网络程序设计这门课,到底在做什么。
二、什么是网络程序设计
先说最本质的一句话:
网络程序设计,就是让不同计算机上的程序,通过网络进行通信,并完成数据交互和业务处理。
这个定义听起来有点抽象,我们换成更直白的说法。
你平时打开一个网站,比如学校官网、教务系统、电商平台,表面上看只是"点开网页",实际上背后发生的是:
-
你的浏览器向服务器发送请求
-
服务器接收到请求
-
服务器处理数据
-
服务器把结果返回给浏览器
-
浏览器把结果渲染成你看到的网页
所以这门课的重点,本质上就是研究:
-
浏览器怎么发请求
-
服务器怎么接收请求
-
服务器怎么返回页面
-
页面之间怎么传数据
-
用户状态怎么保存
也就是说,这门课不是单纯写页面,而是在学:
浏览器---服务器---页面---数据 这一整套交互机制
三、什么是 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
你要知道:
-
表单提交的数据去哪了
-
怎么接收用户输入
-
怎么处理中文乱码
-
怎么在页面之间传值
第四步:再学 Cookie / Session
你要解决:
-
用户登录后怎么记住身份
-
页面跳转后数据怎么保存
-
为什么 HTTP 本身是无状态的
第五步:再学 JavaBean / Servlet / MVC
这是提高部分,也是课程从"会写小例子"到"能做小项目"的关键。
你会学到:
-
如何把数据封装起来
-
如何把页面和业务逻辑分开
-
如何让项目结构更规范
十一、初学者最容易混淆的几个概念
这一部分很重要,我帮你提前排雷。
1. HTML 和 JSP 的区别
HTML
-
静态页面
-
浏览器可直接打开
-
不能直接写 Java 逻辑
JSP
-
动态页面
-
需要服务器运行
-
可以嵌入 Java 代码
2. 浏览器和服务器的区别
浏览器
负责:
-
显示页面
-
提交请求
-
接收服务器返回结果
服务器
负责:
-
处理请求
-
执行 JSP / Servlet
-
返回响应
3. 请求和响应的区别
请求
浏览器发给服务器
响应
服务器返回给浏览器
4. localhost 和 Internet 网站的区别
localhost
表示访问你自己的电脑
真实网站
表示访问远程服务器
本质一样,只是服务器位置不同。
十二、本章你必须真正记住的 8 句话
这一章内容不少,但真正必须牢牢记住的其实就这 8 句:
-
网络程序设计的核心,是浏览器和服务器之间的数据交互。
-
这门课主要学的是 B/S 结构,不是桌面软件开发。
-
浏览器负责发请求和显示页面,服务器负责处理逻辑。
-
Web 应用不是单纯网页,而是能动态处理数据的系统。
-
JSP 本质上是 HTML + Java,用来生成动态页面。
-
浏览器不能直接执行 JSP,必须由服务器先处理。
-
Tomcat 是运行 JSP / Servlet 的服务器环境。
-
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 代码时就不会只是在"背标签",而是会知道自己到底在做什么。