• 猿创征文|瑞吉外卖——管理端_后台登录与退出


    个人名片:

    博主酒徒ᝰ.
    专栏瑞吉外卖
    个人简介沉醉在酒中,借着一股酒劲,去拼搏一个未来。
    本篇励志程序员可以让步,却不可以退缩,可以羞涩,却不可以软弱,总之,程序员必须是勇敢的。

    本项目基于B站黑马程序员Java项目实战《瑞吉外卖》,轻松掌握springboot + mybatis plus开发核心技术的真java实战项目。

    视频链接【黑马程序员Java项目实战《瑞吉外卖》,轻松掌握springboot + mybatis
    plus开发核心技术的真java实战项目】 https://www.bilibili.com/video/BV13a411q753?
    点击观看


    这里没有加入过滤器,所以一开始本人没有用到session进行标记。后面添加过滤才补充的。
    本人的分析十分简洁明了。如有不了解可以直接提问。看到之后一定会回答的。

    一、登录

    1.输入地址,发现报404。具体如下
    在这里插入图片描述

    分析:employee地址,Post方式,login地址。
    所以需要在controller中找到EmployeeController中进行写代码。
    这里直接输地址进行访问是因为我们目前根本不知道如何入手写代码,这个General可以给我们很多提示,这也是我的学习方式,从错误中学习,找到成功之路。
    具体步骤在注释里,后面也一样。

    package com.itheima.reggie.controller;
    
    
    import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
    import com.itheima.reggie.common.R;
    import com.itheima.reggie.entity.Employee;
    import com.itheima.reggie.service.IEmployeeService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.util.DigestUtils;
    import org.springframework.web.bind.annotation.PostMapping;
    import org.springframework.web.bind.annotation.RequestBody;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    import org.springframework.web.bind.annotation.RestController;
    
    import javax.servlet.http.HttpServletRequest;
    
    /**
     * 

    * 员工信息 前端控制器 *

    * * @author 小鸭子 * @since 2022-09-02 */
    @RestController @RequestMapping("/employee") public class EmployeeController { @Autowired private IEmployeeService employeeService; /** * 登录 * @param employee * @return */ @PostMapping("/login") public R<Employee> login(HttpServletRequest request, @RequestBody Employee employee){ //1.登录时先从数据库中判断用户名是否存在 LambdaQueryWrapper<Employee> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(Employee::getUsername, employee.getUsername()); Employee emp = employeeService.getOne(queryWrapper);//用户名(相当于账号)具有唯一性 //2.用户名不存在,则报"用户名不存在" if (emp == null){ return R.error("用户名不存在"); } //3.用户名存在,判断密码是否正确 //3.1.获取客户端输入的密码 String password = employee.getPassword(); //数据库中密码进行了md5加密,所有此处也进行md5加密进行比较 password = DigestUtils.md5DigestAsHex(password.getBytes()); //3.2判断密码是否正确,不等于则报"用户名或密码错误" if (!emp.getPassword().equals(password)){ return R.error("用户名或密码错误"); } //4.已经可以登录,但是还有判断账号是否被禁用 if (emp.getStatus() == 0){ return R.error("账号被禁用"); } //将员工id存入session request.getSession().setAttribute("employee", emp.getId()); //5.以上问题都不存在,登录成功。 return R.success(emp); } }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72

    二、退出登录

    在这里插入图片描述

    分析:Post方式,logout地址

    /**
    * 退出登录
    * @return
    */
    @PostMapping("logout")
    public R<String> logout(HttpServletRequest request){
        //删除session中的员工id
        request.getSession().removeAttribute("employee");
        return R.success("退出成功");
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    三、笔记

    @RequestBody
    个人理解:将客户端输入的数据,例如:用户名和密码。传送到后台,在代码中可以调用
    查询资料:接收前端传递给后端的的json数据的。

  • 相关阅读:
    深入理解计算机系统:运行helloworld程序发生了什么?
    算法 顺时针旋转矩阵
    Vue基础语法的进阶,事件处理器,自定义组件及组件通信
    【hudi】数据湖客户端运维工具Hudi-Cli实战
    【数据分析】基于八叉树和损失编码的无损点云压缩附matlab代码
    前端例程20220906:霓虹灯效按钮
    docer安装hadoop
    如何远程控制别人电脑进行技术支持?
    Vue3:父组件向子组件传值(Props)
    薪资17K+需要什么水平?98年测试工程师面试实录…
  • 原文地址:https://blog.csdn.net/m0_65144570/article/details/126807694