javaweb 是使用 Java 技术开发 B/S 架构网页应用的整套技术体系,核心就是浏览器发起请求,后端 Java 程序接收请求处理业务,再返回页面或者数据给浏览器,javaweb 包含原生基础规范 常用开发框架 服务器容器 数据库交互技术 前端配套技术 项目工具与安全相关模块,很多新手容易误以为 javaweb 只是 Servlet,其实它是一套完整开发体系,原生 Servlet JSP 是底层根基,后续 SpringMVC 等框架都是对原生 javaweb 规范做封装简化,学习 javaweb 一般都是先掌握原生底层原理,再学习框架,理解请求响应完整链路,搞懂浏览器和后端服务器之间的数据流转,是 Java 后端入门非常关键的板块。
原生核心基础组件
Servlet
Java 编写的服务端小程序,运行在 Web 容器里面,负责接收浏览器请求,处理请求,生成响应,是 javaweb 最底层核心组件,核心生命周期方法 init service destroy,支持 doGet doPost 处理不同请求方式。
JSP
Java Server Pages,本质就是内嵌 Java 代码的网页,运行之后会被容器编译成 Servlet,用来动态生成 HTML 页面,早期 javaweb 项目大量使用 JSP 写动态页面,现在前后端分离项目使用变少。
Filter 过滤器
请求到达 Servlet 之前进行拦截,可以统一处理编码 登录校验 跨域 日志记录,属于链式拦截组件,所有请求都可以经过 Filter。
Listener 监听器
监听域对象的创建销毁以及属性变化,比如 ServletContext 监听 会话 Session 创建销毁监听,用来做全局初始化 在线人数统计这类业务。
Cookie 和 Session
Cookie 保存在浏览器端,Session 保存在服务器端,二者是 javaweb 最经典的会话跟踪技术,用来保存用户登录状态。
ServletContext 域对象
整个 Web 应用共享的数据容器,应用启动创建,应用销毁释放,全局共享数据。
Web 容器与服务器
| 名称 | 类型 | 说明 |
|---|---|---|
| Tomcat | 主流 Servlet 容器 | 最常用 javaweb 容器,实现 Servlet 规范,支持 JSP 运行 |
| Jetty | 轻量 Servlet 容器 | 启动快,适合嵌入式开发 |
| Undertow | 高性能容器 | 后续 SpringBoot 默认容器之一 |
数据库持久化相关技术
JDBC 原生 Java 连接数据库标准接口,是 javaweb 项目连接 MySQL 等数据库的基础
DAO 层 数据访问层,封装数据库增删改查代码
数据库连接池 DBCP C3P0 Druid,优化数据库连接创建销毁性能
ORM 框架 MyBatis Hibernate,对 JDBC 封装,减少原生 JDBC 重复代码
主流框架体系
SpringMVC 基于原生 Servlet 规范封装,是 javaweb 最主流 MVC 框架,负责请求分发 控制器处理 参数绑定 视图渲染
Spring 核心容器,提供 IoC AOP,和 SpringMVC 整合构成 SSM
SSM 组合 Spring + SpringMVC + MyBatis,传统 javaweb 经典组合
SpringBoot 简化 javaweb 项目配置,内嵌 Tomcat,自动装配,属于现代 javaweb 开发主流方案
配套前端技术
HTML 网页结构
CSS 页面样式
JavaScript 页面交互
jQuery 早期 javaweb 项目非常常用的 JS 库
AJAX 异步请求,实现页面局部刷新,javaweb 后端接收 AJAX 请求返回 JSON 数据
JSON 前后端数据交换格式
项目构建与辅助工具
Maven 项目构建依赖管理,javaweb 项目标准构建工具,管理 jar 包
Web.xml 原生 javaweb 项目核心配置文件,配置 Servlet Filter Listener,SpringBoot 之后逐步废弃
EL 表达式 JSTL 标签库,配合 JSP 使用,简化 JSP 里面 Java 代码书写
文件上传下载 原生 javaweb 提供 Multipart 相关 API,实现文件上传下载功能
国际化 异常处理 权限拦截 日志组件 log4j logback
深度学习链路说明
学习 javaweb 完整顺序,第一步掌握 HTTP 协议,理解请求头响应头 GET POST 状态码,因为 javaweb 所有通信都基于 HTTP 协议。第二步学习 Tomcat 部署,掌握 WAR 包部署方式。第三步学习 Servlet 生命周期 请求响应对象 HttpServletRequest HttpServletResponse。第四步学习 JSP EL JSTL,然后学习 Filter Listener Cookie Session 会话管理。第五步学习 JDBC 数据库连接,搭建 DAO 分层。第六步学习 AJAX JSON 前后端交互。第七步再学习 SSM 框架,理解框架底层依然是 Servlet 规范。第八步进阶 SpringBoot 现代 javaweb 开发模式。
补充拓展
传统 javaweb 是 MVC 分层架构,分为 Controller 控制器 Service 业务层 DAO 持久层 Entity 实体类,分层目的是代码解耦,业务逻辑和页面数据库操作分开,方便维护。现在前后端分离之后,javaweb 后端不再大量使用 JSP 渲染页面,后端主要输出 JSON 接口,但是底层 Servlet 规范依然是根基,框架并没有抛弃这套底层标准,只是做封装。
【常见问题】
问题 1 javaweb 里面最底层核心组件是什么
回答 1 javaweb 里面最底层核心组件是 Servlet,JSP 本质最终也会编译成 Servlet,所有 javaweb 框架比如 SpringMVC 底层都是基于 Servlet 规范封装
问题 2 javaweb 的 SSM 是哪三个技术
回答 2 javaweb 的 SSM 指 Spring SpringMVC MyBatis,SpringMVC 属于 javaweb 的 MVC 控制器框架,MyBatis 负责 javaweb 项目数据库持久化操作
问题 3 javaweb 必须要 Tomcat 吗
回答 3 传统原生 javaweb 项目需要 Servlet 容器,Tomcat 是最常用的 javaweb 容器,现代 SpringBoot 版 javaweb 已经内嵌 Tomcat 不需要单独安装外部 Tomcat
问题 4 javaweb 里面 Filter 的作用是什么
回答 4 javaweb 里面 Filter 是过滤器,可以在请求到达 Servlet 之前拦截请求,javaweb 项目经常用 Filter 统一处理编码 登录校验这类通用逻辑
【免责申明】
本文内容为 javaweb 技术体系科普讲解,技术栈会随版本迭代更新,不同企业项目选型存在差异,本文不构成课程大纲或者考试唯一标准答案。


