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

个人名片:

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

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

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

目录

  • 一、登录
  • 二、退出登录
  • 三、笔记

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

一、登录

1.输入地址,发现报404。具体如下
猿创征文|瑞吉外卖——管理端_后台登录与退出_第1张图片

分析: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); } }

二、退出登录

猿创征文|瑞吉外卖——管理端_后台登录与退出_第2张图片

分析:Post方式,logout地址

/**
* 退出登录
* @return
*/
@PostMapping("logout")
public R<String> logout(HttpServletRequest request){
    //删除session中的员工id
    request.getSession().removeAttribute("employee");
    return R.success("退出成功");
}

三、笔记

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

你可能感兴趣的:(瑞吉外卖,java,spring,boot,mybatis)