做一个前后端分离项目的流程JAVA+VUE3(登录页面)
需求:比如说哈,我现在要做一个登录页面,上面要输入用户名,输入密码,输入错误 10 次就 6 小时不准输入了。那么我用 JAVA 写后端,我用 VUE3 写前端,前后分离,域名 + 服务器已备好,整理全套可落地流程,新手也能照着做!这套流程是完整闭环,从核心文件、环境准备,到部署上线、联调测试,每一步都写清楚了,新手照着做就能做出可上线、可访问、功能完整的登录系统,没有任何疏漏,直接用域名。
·
前后分离登录系统(Vue3+SpringBoot)完整流程(可直接上线)
需求:比如说哈,我现在要做一个登录页面,上面要输入用户名,输入密码,输入错误 10 次就 6 小时不准输入了。那么我用 JAVA 写后端,我用 VUE3 写前端,前后分离,域名 + 服务器已备好,整理全套可落地流程,新手也能照着做!
- 后端Java:6个核心文件(4类核心+2个补充)
- 前端Vue3:1个页面文件+1个必备请求工具
- 服务器准备:安装3个核心软件+开放4个必备端口
- 数据库部署:服务器建库建表+配置访问权限
- 后端部署:配置服务器数据库+打包上传+常驻启动
- 前端部署:打包静态文件+上传Nginx+配置域名/反向代理
- 前后联调:配置接口地址+全场景测试验证
- 可选完善:配置HTTPS+安全加固+日志记录
- 编程语言:Java
- 开发框架:SpringBoot
- 必备工具:Result(统一返回)、PasswordUtil(密码加密)
- 开发框架:Vue3
- 核心技术:HTML(骨架)+ CSS(样式)+ JavaScript(交互)
- 必备工具:Axios(前后端通信)
- 服务器公网 IP:[47.116.**.199](47.116.**.199)
- 域名:www.wslanst.com(已解析指向上述 IP)
- 实体类(UserLogin.java)
作用:数据模板图纸,专门封装 4 个核心数据(用户名、密码、错误次数、锁定截止时间),与数据库表一一对应,加注解标识字段。
- Mapper/DAO(UserLoginMapper.java)
作用:专门操作数据库,只干 2 件事,不写任何业务逻辑:
- 根据用户名查询用户完整信息
- 更新登录错误次数、账号锁定截止时间
- Service 业务层(LoginService.java)
作用:核心逻辑中枢,所有规则全在这里,负责 "脑子判断":
- 先判断账号是否处于 6 小时锁定期内
- 校验用户名 + 密码是否匹配
- 登录失败:错误次数 + 1
- 错误次数满 10 次:设置 6 小时锁定时间
- Controller 控制器(LoginController.java)
作用:前后端中转站,只做 3 件事:
- 接收 Vue3 前端传过来的用户名、密码
- 调用 Service 层执行业务逻辑
- 将结果(成功 / 密码错 / 已锁定)返回给前端
- 补充:统一返回实体类(Result.java)
作用:规范后端返回格式,给前端统一响应模板,避免格式混乱,固定返回 3 样东西:状态码、提示文案、携带数据。
- 补充:密码加密工具类(PasswordUtil.java)
作用:保障密码安全,只干 2 件事:
- 对密码进行加密处理(数据库不存明文)
- 登录时比对前端传参密码与数据库加密密码是否一致
- 登录页面(Login.vue)
作用:只管页面展示和传参,不做任何逻辑判断,内部包含 3 部分(缺一不可):
- HTML:用户名输入框、密码输入框、登录按钮、提示文字(还能输几次、已锁定请 6 小时后再试)
- CSS:页面排版、配色、按钮样式、居中美化
- JavaScript:按钮点击事件、请求发送、后端结果展示
- 补充:前端请求工具(Axios)
作用:Vue3 专属通信工具,唯一作用:帮 Login.vue 把账号密码发给后端接口,同时接收后端返回结果,没有它前后端无法通信。
- 实体类:存数据的模板图纸
- Mapper:只管读写数据库,不做判断
- Service:核心规则(错 10 次锁 6 小时)
- Controller:对接前端,收参、返结果
- Result 类:统一后端返回格式,前端好解析
- PasswordUtil 类:密码加密,保障安全
- Vue 页面:界面展示、用户输入、传参
- Axios:前后端通信的 "桥梁"
- 必须安装 3 个核心软件:
- JDK:运行 SpringBoot 后端
- MySQL:存储账号、错误次数、锁定时间
- Nginx:绑定域名、托管 Vue3 前端、实现反向代理
- 防火墙必须开放 4 个端口(说明清晰,避免踩坑):
- 80 端口:http 协议域名访问(基础)
- 443 端口:https 协议安全访问(正规网站必备)
- 后端端口:供 SpringBoot 后端使用
- MySQL 端口:建议限制内网访问(提升安全性,防止恶意攻击)
- 在服务器 MySQL 中新建专属数据库
- 新建登录数据表,字段固定 4 个:用户名、加密密码、错误次数、锁定截止时间(重点:密码不存明文)
- 设置 MySQL 账号密码,配置权限,允许 SpringBoot 后端连接数据库
- 修改 SpringBoot 配置,将数据库连接改为服务器 MySQL 地址(脱离本地数据库)
- 定义固定登录接口地址:/api/login(供前端 Vue3 统一调用)
- 将后端项目打包成可运行文件
- 上传至云服务器,设置后台常驻启动(关闭终端也能正常运行,不影响接收前端请求)
- 将 Vue3 项目打包成静态文件(包含 HTML、CSS、JavaScript)
- 把打包文件上传到服务器 Nginx 指定目录
- Nginx 核心 4 项配置(必做):
- 绑定域名www.wslanst.com
- 配置域名默认访问登录首页(输入域名直接显示登录页)
- 反向代理:将前端/api开头的请求,转发到后端端口
- 配置跨域,解决前后端通信报错问题
- 前端 Axios 请求地址改为域名访问,统一路径:www.wslanst.com/api/login
- 确认 Nginx 跨域、反向代理配置生效,前后端通信无报错
- 全场景测试(必测,避免上线出问题):
- 登录成功:正常跳转、错误次数清空
- 密码错误:提示错误、错误次数累加
- 错误满 10 次:触发锁定、提示 6 小时后再试
- 锁定期间登录:直接提示锁定,无法提交请求
- 配置 HTTPS ssl 证书,让网址显示绿色安全锁(提升可信度)
- 设置后端开机自启、意外崩溃自动重启(服务器重启后不影响使用)
- 服务器安全加固:关闭不必要端口、限制 MySQL 外网访问
- 新增登录日志记录(记录登录时间、登录状态、锁定记录,方便后续排查问题)
这套流程是完整闭环,从核心文件、环境准备,到部署上线、联调测试,每一步都写清楚了,新手照着做就能做出可上线、可访问、功能完整的登录系统,没有任何疏漏,直接用域名www.wslanst.com就能访问!
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)