网络程序设计入门第一章: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 才不会一直发懵。
这一章的目标只有一个:
搞明白网络程序设计这门课,到底在做什么。
二、什么是网络程序设计
先说最本质的一句话:
网络程序设计,就是让不同计算机上的程序,通过网络进行通信,并完成数据交互和业务处理。
这个定义听起来有点抽象,我们换成更直白的说法。
你平时打开一个网站,比如学校官网、教务系统、电商平台,表面上看只是“点开网页”,实际上背后发生的是:
你的浏览器向服务器发送请求
服务器接收到请求
服务器处理数据
服务器把结果返回给浏览器
浏览器把结果渲染成你看到的网页
所以这门课的重点,本质上就是研究:
浏览器怎么发请求
服务器怎么接收请求
服务器怎么返回页面
页面之间怎么传数据
用户状态怎么保存
也就是说,这门课不是单纯写页面,而是在学:
浏览器—服务器—页面—数据这一整套交互机制
三、什么是 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 代码时就不会只是在“背标签”,而是会知道自己到底在做什么。
