javaweb 是使用 Java 语言开发 B/S 架构 Web 应用的服务端开发技术,简单来说就是运行在服务器上,接收浏览器发来的请求,处理业务逻辑,读写数据库,再把页面或者数据返回给浏览器,日常见到的后台管理系统 电商网站 在线考试系统 企业官网 信息查询平台,很多传统项目都是用 javaweb 这套技术开发出来的。很多新手不清楚 javaweb 是做啥的,是因为它不是单独一款软件,而是一套开发方案,依托 Tomcat 这类 Web 容器运行,核心解决浏览器和服务器之间动态交互的问题,静态网页只能展示固定内容,javaweb 可以实现登录注册 数据增删改查 权限控制 分页查询 上传文件这类动态业务。想要理解 javaweb 是做啥的,可以先分清 B/S 架构特点,再了解请求响应完整流程,接着熟悉典型业务场景,最后区分它和纯前端开发的职责边界,掌握之后就明白 javaweb 主要承担服务端业务处理这个核心角色。
基础信息表
| 项目 | 内容 |
|---|---|
| 名称 | javaweb |
| 架构模式 | B/S 浏览器 服务器 |
| 核心运行容器 | Tomcat |
| 核心技术 | Servlet JSP JDBC Filter Session Cookie |
| 核心职责 | 服务端业务处理 数据库交互 请求响应 |
| 访问方式 | 浏览器输入网址访问,不需要单独安装客户端 |
完整请求响应工作流程
1 用户在浏览器输入网址或者点击页面按钮,发送 HTTP 请求到服务器
2 Tomcat 容器接收请求,把请求交给对应的 Servlet
3 Servlet 里面编写 Java 业务代码,校验参数,调用 JDBC 操作 MySQL 数据库
4 业务处理完成之后,生成动态页面或者 JSON 数据
5 服务器把响应结果返回浏览器,浏览器渲染展示给用户
典型应用场景清单
1 企业后台管理系统 员工管理 部门管理 权限菜单 数据报表
2 电商类网站 商品展示 购物车 订单提交 用户登录注册
3 在线教务系统 学生信息 课程选课 成绩查询
4 政务信息查询平台 公告发布 资料检索
5 小型 OA 办公系统 审批流程 公告通知
和其他开发类型的职责区分
1 和纯前端对比 前端负责页面样式 页面交互,javaweb 负责服务端逻辑和数据库,前端只做展示,不能独立保存持久化数据
2 和 JavaSE 对比 JavaSE 是本地桌面程序,运行在电脑本地,javaweb 是网络服务程序,部署在服务器,通过网络浏览器访问
3 和 SpringBoot 对比 SpringBoot 是对原生 javaweb 技术封装升级,底层依然兼容 Servlet 规范,本质还是属于 javaweb 体系的现代化实现
核心能力深度说明
1 用户会话管理 通过 Cookie 和 Session 保存登录状态,实现登录之后多次访问不用重复登录
2 请求拦截校验 Filter 过滤器可以统一处理字符编码,做登录权限拦截,未登录用户直接跳转到登录页
3 数据库持久化 通过 JDBC 连接数据库,完成数据新增 修改 删除 查询,所有动态业务的数据都保存在数据库
4 动态页面渲染 JSP 可以把数据库查询出来的数据动态填充到网页当中,每次查询数据不一样,页面内容就会动态变化
常见认知误区
1 误区 javaweb 只能做静态网页,静态网页不需要 Java 代码,javaweb 核心价值就是动态业务处理
2 误区 javaweb 已经完全淘汰,现在虽然主流新项目多用 SpringBoot,但是底层原理仍然是原生 javaweb 这套 Servlet 机制,学习原生 javaweb 是理解框架底层的基础
3 误区 javaweb 可以独立开发前端页面美化,页面美化仍然需要 HTML CSS JavaScript,javaweb 只负责服务端逻辑
【常见问题】
问题 1 javaweb 是做啥的,它是不是只能开发网站
回答 1 javaweb 是做服务端动态业务开发,主要产出是 B/S 架构 Web 应用,常见形式就是网站和后台管理系统,核心能力是请求处理和数据库交互,不局限单纯展示型网站。
问题 2 javaweb 是做啥的,为什么学习 javaweb 一定要搭配 MySQL
回答 2 javaweb 是做动态业务处理,动态业务离不开数据存储,MySQL 用来保存用户商品订单这类业务数据,javaweb 通过 JDBC 和 MySQL 完成读写,所以学习 javaweb 一般都会搭配 MySQL 数据库。
问题 3 javaweb 是做啥的,它和 C/S 架构程序有什么差别
回答 3 javaweb 是做 B/S 架构应用,用户通过浏览器访问,不需要安装独立客户端,C/S 架构需要单独安装客户端软件,javaweb 的优势就是跨平台,只要有浏览器就可以访问系统。
【免责申明】
本内容仅针对 javaweb 用途进行科普讲解,行业技术方案持续迭代,不同项目技术选型存在差异,本内容不代表官方定义,实际开发请结合最新技术规范。


