Java学习三阶段-Day11

1. 实现用户登录操作

1.1 编辑页面JS

1.1.1 属性绑定

  1. 编辑页面
    Java学习三阶段-Day11_第1张图片
  2. 属性定义
    Java学习三阶段-Day11_第2张图片

1.2 Form表单校验

1.2.1 Form表单校验规则

Form 组件提供了表单验证的功能,只需要通过 rules 属性传入约定的验证规则,并将 Form-Item 的 prop 属性设置为需校验的字段名即可
2个核心属性: 1.rules 定义校验规则 2.prop 设定采用哪种校验方式.

1.2.2 校验规则实现

  1. 标识页面
    Java学习三阶段-Day11_第3张图片
    2.完成校验规则
    Java学习三阶段-Day11_第4张图片
  2. 校验页面展现
    Java学习三阶段-Day11_第5张图片

1.3 重置按钮实现

1.3.1 官网API

说明: 通过resetFields的方法,实现表单数据的重置操作.
在这里插入图片描述

1.3.2 重置按钮

  1. 添加点击事件
    Java学习三阶段-Day11_第6张图片
  2. 编辑点击事件
    Java学习三阶段-Day11_第7张图片

1.4 登录实现

1.4.1 添加事件

说明:为登录按钮添加点击事件
Java学习三阶段-Day11_第8张图片

1.4.2 登录步骤

  1. 再次校验用户的数据是否有效
  2. 发起Ajax请求实现用户登录请求. username/password post请求
  3. 在后端服务器 通过username/password 进行数据的查询.
    结果 1.有数据 用户名密码正确. 2.无数据 用户名或密码错误
  4. 后端将数据处理完成之后,返回特定的数据. 告知前端 数据处理情况(回执!!!)
    status=200 代表操作成功!!! status=201 表示业务操作失败
  5. 前端通过JS判断服务器的回执. 如果状态码等于200 提示用户登录成功, 否则告知用户用户名或密码错误.
  6. 一般为了校验用户是否登录,会返回一个特殊的密钥-TOKEN(密文),如果没有密钥则需要重新登录.

1.4.3 页面校验API

Java学习三阶段-Day11_第9张图片

1.4.4 用户登录接口文档

Java学习三阶段-Day11_第10张图片

1.4.5 用户登录操作

Java学习三阶段-Day11_第11张图片

1.4.6 前端请求路径URL地址

Java学习三阶段-Day11_第12张图片

1.4.7 构建系统返回值SysResult对象

说明: 前后端在进行交互时需要有一种统一的方式进行返回, 规定在京淘项目后端采用SysResult对象进行统一返回
VO层说明: 前端获取服务器数据时 一般都通过VO层进行封装.

@Data
@Accessors(chain = true)
@NoArgsConstructor
@AllArgsConstructor
public class SysResult {
    private Integer status; //状态码信息
    private String msg;     //提示信息
    private Object data;    //封装业务数据
    public static SysResult fail(){
        return new SysResult(201, "服务器调用失败",null );
    }
    public static SysResult success(){
        return new SysResult(200, "业务执行成功", null);
    }
    /**
     * 1.方法要被别人调用!!!
     * 2.该方法被调用时 调用者负责参数的传递.
     * @param data
     * @return
     */
    public static SysResult success(Object data){
        return new SysResult(200, "业务执行成功", data);
    }
    public static SysResult success(String msg,Object data){
        return new SysResult(200, msg, data);
    }
}

1.4.8 关于UUID说明

说明: UUID是一个32位16进制的字符串,通常可以保证 每次生成的串都是唯一的.
补充A: 16进制取值区间 0-9 A-F 32个0~~~~~~32个F
问: UUID共有多少种可能性!!! (24)32= 2^128
3.4*10^38

1.4.9 编辑UserController

Java学习三阶段-Day11_第13张图片

1.4.10 编辑UserService

/**
     * 说明: 根据用户名和密码判断数据是否有效
     * 步骤:
     *      1.将明文进行加密处理. md5加密/md5Hash/sha1
     *      2.根据加密后的数据查询数据库
     *      3.判断结果是否有效
     *          有值: 返回特定字符串token=123
     *          null: u/p 不正确  返回null
     * @param user
     * @return
     */
    @Override
    public String login(User user) {
        //1.获取原始密码
        String password = user.getPassword();
        //2.将密码进行加密处理
        String md5Str = DigestUtils.md5DigestAsHex(password.getBytes());
        //3.将密文传递给对象
        user.setPassword(md5Str); //username/password
        //根据对象中不为null的属性充当where条件
        QueryWrapper<User> queryWrapper = new QueryWrapper(user);
        //4.根据条件查询数据库
        User userDB = userMapper.selectOne(queryWrapper);
        //5.定义token数据 限定条件 token不能重复
        // UUID: 随机字符串 3.4*10^38 种可能性
        String uuid = UUID.randomUUID().toString()
                .replace("-","");
        return userDB==null?null:uuid;
    }

你可能感兴趣的:(Java学习三阶段,java,vue,ajax,spring,boot,vue.js)