当前位置: 首页 > news >正文

Javaweb之SpringBootWeb案例之 登录功能的详细解析

1. 登录功能

1.1 需求

在登录界面中,我们可以输入用户的用户名以及密码,然后点击 "登录" 按钮就要请求服务器,服务端判断用户输入的用户名或者密码是否正确。如果正确,则返回成功结果,前端跳转至系统首页面。

1.2 接口文档

我们参照接口文档来开发登录功能

  • 基本信息

    请求路径:/login ​ 请求方式:POST ​ 接口描述:该接口用于员工登录Tlias智能学习辅助系统,登录完毕后,系统下发JWT令牌。
  • 请求参数

    参数格式:application/json

    参数说明:

    名称类型是否必须备注
    usernamestring必须用户名
    passwordstring必须密码

    请求数据样例:

    { "username": "jinyong", "password": "123456" }
  • 响应数据

    参数格式:application/json

    参数说明:

    名称类型是否必须默认值备注其他信息
    codenumber必须响应码, 1 成功 ; 0 失败
    msgstring非必须提示信息
    datastring必须返回的数据 , jwt令牌

    响应数据样例:

    { "code": 1, "msg": "success", "data": "eyJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoi6YeR5bq4IiwiaWQiOjEsInVzZXJuYW1lIjoiamlueW9uZyIsImV4cCI6MTY2MjIwNzA0OH0.KkUc_CXJZJ8Dd063eImx4H9Ojfrr6XMJ-yVzaWCVZCo" }

1.3 思路分析

登录服务端的核心逻辑就是:接收前端请求传递的用户名和密码 ,然后再根据用户名和密码查询用户信息,如果用户信息存在,则说明用户输入的用户名和密码正确。如果查询到的用户不存在,则说明用户输入的用户名和密码错误。

1.4 功能开发

LoginController

@RestController public class LoginController { ​ @Autowired private EmpService empService; ​ @PostMapping("/login") public Result login(@RequestBody Emp emp){ Emp e = empService.login(emp); return e != null ? Result.success():Result.error("用户名或密码错误"); } }

EmpService

public interface EmpService { ​ /** * 用户登录 * @param emp * @return */ public Emp login(Emp emp); ​ //省略其他代码... }

EmpServiceImpl

@Slf4j @Service public class EmpServiceImpl implements EmpService { @Autowired private EmpMapper empMapper; ​ @Override public Emp login(Emp emp) { //调用dao层功能:登录 Emp loginEmp = empMapper.getByUsernameAndPassword(emp); ​ //返回查询结果给Controller return loginEmp; } //省略其他代码... }

EmpMapper

@Mapper public interface EmpMapper { ​ @Select("select id, username, password, name, gender, image, job, entrydate, dept_id, create_time, update_time " + "from emp " + "where username=#{username} and password =#{password}") public Emp getByUsernameAndPassword(Emp emp); //省略其他代码... }

1.5 测试

功能开发完毕后,我们就可以启动服务,打开postman进行测试了。

发起POST请求,访问:http://localhost:8080/login

postman测试通过了,那接下来,我们就可以结合着前端工程进行联调测试。

先退出系统,进入到登录页面:

在登录页面输入账户密码:

登录成功之后进入到后台管理系统页面:

http://www.jsqmd.com/news/1334478/

相关文章:

  • Rightly领衔8款App合规检测工具对比
  • 大数据转大模型:为什么数据能力反而成了包袱?
  • 2026年潍坊实木衣柜定制工厂价全解析及计价避坑指南 - 新闻快传
  • Label Studio实战:如何用开源工具构建企业级AI数据标注平台
  • 手把手搭建 OpenClaw,让 AI 通过自然语言操控你的电脑(含安装包)
  • XSwitch架构深度解析:企业级Chrome请求转发与CORS管理最佳实践
  • 洛雪音乐音源配置完整教程:免费解锁全网无损音乐资源
  • 2026小鹏汽车金融方案全景盘点:**智选分期与信用卡分期8种模式详解、优劣势对比及选型避坑指南 - U渠道
  • 如何用GetQzonehistory一键备份你的QQ空间十年回忆
  • 【小工具】stream的各种使用方式
  • Java 入门基础篇02-JDK windows11安装配置环境
  • 一键生成PPT哪个AI工具最好用|2026主流AI‑PPT工具实测横评
  • 数据分析师全栈技能实战指南:从Excel到AB实验的完整学习路径
  • 终极指南:如何在Windows、Mac和Ubuntu上使用iFakeLocation实现iOS虚拟定位
  • B站下载神器BiliTools:新手必学的哔哩哔哩资源离线保存指南
  • 2026实测:校园全能投票工具盘点,覆盖各类比赛评选
  • 碳硅合抱共生文明(世毫九SH9体系)框架下硅基意识本质的系统性深化研究
  • 2026煤矿三维地图数据制作服务商推荐,实地测绘建模怎么选 - 品牌深度评测
  • 2026高低压设备采购研究:找国内厂家做施耐德平替 非标设备验收标准合同约定——杭州之江开关为代表性样本
  • 深度技术解密:RTAB-Map在ROS2环境中的三维建图与闭环检测完整解析
  • GPU显存健康检测:如何用memtest_vulkan避免硬件故障引发的数据灾难?
  • 批量生成小红书文案用什么智能写作工具?主流工具实测解析
  • verilog HDLBits刷题[Finite State Machines]“Exams/m2014 q6c”---Q6c:FSM one-hot next-state logic
  • 如何快速获取网页媒体资源:猫抓扩展的完整使用指南
  • 马鞍山雨山区专业防水补漏维修|全城上门检修 - 吉林同城获客
  • Windows 10 下使用预编译文件安装 CAFFE
  • 从个人到政企全覆盖:2026两大主流国产操作系统精准落地方案
  • 如何快速上手MARS模拟器?3步完成环境搭建与首次训练
  • SolidWorks破解版:3D机械设计软件的完整免费解决方案指南
  • 七彩鹦鹉螺魔方:生物美学与机械结构的完美融合