首页 > 编程语言 >Javaweb之SpringBootWeb案例之 登录功能的详细解析

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

时间:2024-10-14 21:20:23浏览次数:11  
标签:用户名 Javaweb 登录 SpringBootWeb emp login 解析 public Emp


 1. 登录功能

1.1 需求

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

编辑

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

1.2 接口文档

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

  • 基本信息
请求路径:/login

请求方式:POST

接口描述:该接口用于员工登录Tlias智能学习辅助系统,登录完毕后,系统下发JWT令牌。
  • 请求参数
    参数格式:application/json
    参数说明:

名称

类型

是否必须

备注

username

string

必须

用户名

password

string

必须

密码

请求数据样例:

{
    "username": "jinyong",
    "password": "123456"
}
  • 响应数据
    参数格式:application/json
    参数说明:

名称

类型

是否必须

默认值

备注

其他信息

code

number

必须

响应码, 1 成功 ; 0 失败

msg

string

非必须

提示信息

data

string

必须

返回的数据 , jwt令牌

响应数据样例:

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

1.3 思路分析

Javaweb之SpringBootWeb案例之 登录功能的详细解析_数据_02

编辑

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

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

Javaweb之SpringBootWeb案例之 登录功能的详细解析_用户名_03

编辑

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

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

Javaweb之SpringBootWeb案例之 登录功能的详细解析_数据_04

编辑

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

Javaweb之SpringBootWeb案例之 登录功能的详细解析_登录页面_05

编辑

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

Javaweb之SpringBootWeb案例之 登录功能的详细解析_数据_06

编辑



标签:用户名,Javaweb,登录,SpringBootWeb,emp,login,解析,public,Emp
From: https://blog.51cto.com/u_16265376/12249434

相关文章

  • 【Java 22 | 3】 深入解析Java 22 :轻量级线程
    Java22轻量级线程特性详细介绍基础介绍轻量级线程(VirtualThreads)是Java平台在Java19中引入的特性,目的是简化并发编程并提高应用程序的可伸缩性。在Java22中,轻量级线程得到了进一步的完善,使得开发者能够更方便地创建和管理大量并发任务。轻量级线程的特点高......
  • javaweb实现下载功能报错sockettimeout
    javaweb压缩zip包下载,并响应头里面指定文件大小在JavaWeb应用程序中,如果你想要创建一个ZIP文件并通过HTTP响应提供下载,并且希望在响应头中指定文件大小,你可以先将文件写入到一个临时的ByteArrayOutputStream中,这样你就可以计算出压缩后的文件大小。然后,你可以将这个字节......
  • 深入解析ClickHouse:优势、架构、数据组织与应用场景
    引言在大数据时代,随着数据量的不断增长,越来越多的企业需要高效的数据分析工具来支持实时决策。ClickHouse作为一款高性能的列式数据库,因其在实时分析处理方面的卓越表现,逐渐在数据仓库领域脱颖而出。本篇博客将对ClickHouse进行深入解析,全面介绍其优势、数据架构、数据组织方......
  • python3.6 解析svg保存到mysql
     1importjson2fromcollectionsimportCounter3fromjsonimportJSONDecodeError45importmysql6importrequests7fromlxmlimportetree89#定义远程SVG文件的URL10file=r'D:\tmp_files\jmx\0919_3568.txt'11dat......
  • Windows11下安装wsl报错:无法解析服务器的名称或地址
    问题描述之前在自己的笔记本电脑(Windows10)上下载安装WSL很顺利,具体教程见前面的文章,但是在新电脑(Windows11)上下载就报错:无法解析服务器的名称或地址,按照网上说的两个解决方案:修改 DNS 为手动114.114.114.114;查询 raw.githubusercontent.com 这个域名对应的能ping通的ip,......
  • 【Linux】解析信号的本质&相关函数及指令的介绍
    前言大家好吖,欢迎来到YY滴Linux系列,热烈欢迎!本章主要内容面向接触过C++的老铁主要内容含:欢迎订阅YY滴C++专栏!更多干货持续更新!以下是传送门!YY的《C++》专栏YY的《C++11》专栏YY的《Linux》专栏YY的《数据结构》专栏YY的《C语言基础》专栏YY的《初学者易错点》......
  • 助力YOLOv8的突破—ODConv卷积技术的深度解析与实践【附保姆级代码】(YOLOv8)
    本专栏专为AI视觉领域的爱好者和从业者打造。涵盖分类、检测、分割、追踪等多项技术,带你从入门到精通!后续更有实战项目,助你轻松应对面试挑战!立即订阅,开启你的YOLOv8之旅!专栏订阅地址:https://blog.csdn.net/mrdeam/category_12804295.html文章目录助力YOLOv8的突破—ODC......
  • AI绘画StableDiffusion零基础入门—文生图:全面解析AI绘画中提示词的妙用和各种语法,Pro
    AI绘画的一个必不可少的环节就是告诉AI描述画面的Prompt(提示词),但是这种很长很乱、穿插着各种奇怪的数字符号、高深莫测的提示词,究竟在说着什么?难道真的是咒语吗?魔法?咒语?你绝对不曾想到,有生之年竟然能迎来这么一个奇迹时代:画画竟然还能用魔法,岂不是只要会念咒、人人都......
  • qt深入解析
    1.QtIO设备类型:顺序存储设备:如网卡。。随机存储设备:如.txt..Qt中IO设备继承图 Qt中的文件系统通用开发库,跨平台QIODeviceIO父类,提供字节块读写通用操作和基本接口QFileDevice提供文件操作通用实现QFile访问本地文件或嵌入资源QTemporayFile创建和访问本地系统的临......
  • 五大项目管理图表工具推荐,功能与应用解析
    本文介绍了五大项目管理图表工具:甘特图、看板图、任务管理图、资源利用图和项目进展图,并讨论了它们的特点、适用场景及选择建议。合适的图表工具能提升项目管理效率和成功率。第一部分:五大项目管理图表工具1.甘特图说到项目管理图表工具,甘特图绝对是常青树。甘特图起源于20世......