day12

1.实现用户登录

1.1 用户登录凭证存储

说明: 由于用户登录之后,后端服务器会返回给前端用户的token信息. 前端需要保存该token.否则请求结束之后,数据将会销毁.
问题: 服务器端的数据应该存储到哪个位置?

1.2 Session与Cookie
1.2.1 Session介绍

 

**Session:**在计算机中,尤其是在网络应用中,称为“会话控制”。Session对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的Web页之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的 Web页时,如果该用户还没有会话,则Web服务器将自动创建一个 Session对象。当会话过期或被放弃后,服务器将终止该会话。Session 对象最常见的一个用法就是存储用户的首选项。例如,如果用户指明不喜欢查看图形,就可以将该信息存储在Session对象中。有关使用Session 对象的详细信息,请参阅“ASP应用程序”部分的“管理会话”。注意会话状态仅在支持cookie的浏览器中保留。

总结: Session是一种会话的一种机制, 新打开浏览器会建立一个会话机制.在该机制中可以存储数据.在会话的周期内,该数据一直有效. 当会话结束时 之前保存的数据将会被销毁.
 

 

.2.2 Cookie机制

 

Cookie,有时也用其复数形式 Cookies。类型为“小型文本文件”,是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息 [1] 。

场景: 要求用户7天免密登录.

 

1.2.3 关于用法案例 

  1. 手机银行用户登录的信息 通过Session存储.
  2. 财务系统登录信息???Session存储.
  3. OA系统用户登录信息? Session存储 共性: 安全性!!!
  4. 腾讯视频会员!!! Cookie存储
  5. 网址一些大型数据. Cookie存储

 

1.3 实现用户页面跳转

  1. 编辑vue页面实现跳转
    在这里插入图片描述
  2. 编辑前端路由跳转
    在这里插入图片描述
  3. 页面效果展现
    在这里插入图片描述

 

1.4 路由导航守卫

1.4.1 需求说明(1.0)

当用户没有登录时,则不允许跳转其他的页面. 只有当用户登录成功之后.才可以跳转页面.
关键点: 检查session中是否有用户登录的token

 

1.4.2 编辑index.js

说明: 编辑路由文件
在这里插入图片描述
2.编辑路由内容,写的时候注意顺序位置.

在这里插入图片描述

 

2 左侧菜单列表实现

2.1 编辑Rights POJO对象

在这里插入图片描述

2.2 权限列表查询

说明: 如果需要查询父子结构的数据,则可以通过parent_id的方式查询子级信息./*查询一级权限列表信息*/
SELECT * FROM rights WHERE parent_id=0
/*查询二级权限列表信息*/
SELECT * FROM rights WHERE parent_id=1
/*查询三级权限列表信息*/
SELECT * FROM rights WHERE parent_id=2
 

 

2.3 实现权限列表

2.3.1 Ajax请求分析

编辑页面通过Ajax获取远程服务器数据.
在这里插入图片描述

2.3.2 业务接口文档说明

在这里插入图片描述

2.3.3 编辑RightsController

 

@RestController
@CrossOrigin
@RequestMapping("/rights")
public class RightsController {

    @Autowired
    private RightsService rightsService;

    /**
     * 需求: 查询权限列表信息  只查询1-2级权限列表信息
     * URL:  /rights/getRightsList
     * 参数:  无
     * 返回值: SysResult对象(List集合)
     */
    @GetMapping("getRightsList")
    public SysResult getRightsList(){

        List<Rights> rightsList = rightsService.getRightsList();
        return SysResult.success(rightsList);
    }
}

 

2.3.4 编辑RightsService 

@Service
public class RightsServiceImpl implements RightsService{

    @Autowired
    private RightsMapper rightsMapper;

    /**
     * 1.查询所有的1级信息 parent_id=0
     * 2.查询1级下边的2级信息 parent_id=1级id
     * @return
     */
    @Override
    public List<Rights> getRightsList() {
        //1.查询一级权限信息
        QueryWrapper<Rights> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("parent_id",0);
        List<Rights> oneList = rightsMapper.selectList(queryWrapper);
        //2.查询1级下边的二级list集合
        for (Rights rights : oneList){
            queryWrapper.clear(); //将where条件清空之后重新添加
            queryWrapper.eq("parent_id",rights.getId());
            List<Rights> children = rightsMapper.selectList(queryWrapper);
            rights.setChildren(children);
        }
        return oneList;
    }
}
 

 

2.3.5 页面效果展现

在这里插入图片描述

3 用户模块实现

3.1 欢迎页面跳转

说明: 要求用户跳转到/home页面时,在右侧默认展现welcome页面
在这里插入图片描述
页面效果如下:
在这里插入图片描述 

 

3.2 用户模块说明

3.2.1 需求说明

 

用户管理模块主要负责用户相关信息的维护,
1.展现用户列表
2.更新用户列表
3.修改用户的状态
4.删除用户
5.新增用户 

3.2.2 user表说明

在这里插入图片描述

3.2.3 编辑User POJO对象

在这里插入图片描述

3.3 用户列表展现

3.3.1 页面Ajax说明

在这里插入图片描述

 

  1. query不带参数的请求路径
    在这里插入图片描述
  2. query带参数的请求路径
    在这里插入图片描述

 

3.3.2 用户列表业务接口

  1. 参数说明
    在这里插入图片描述
  2. PageResult对象
    在这里插入图片描述

3.3.3 编辑PageResult对象

 

说明: 在jt.com.vo中编辑PageResult对象
在这里插入图片描述

3.3.4 编辑UserController

在这里插入图片描述

3.3.5 编辑UserService

 

 /**
     * Mysql的分页语法: 1.0版本
     *  select * from user limit 起始位置0,查询的条数
     *  Sql: 1页2条   n页数/m条数
     *      SELECT * FROM  USER LIMIT 0,2   第一页
     *      SELECT * FROM  USER LIMIT 2,2   第二页
     *      SELECT * FROM  USER LIMIT 4,2   第三页
     *      SELECT * FROM  USER LIMIT 6,2   第四页
     *      SELECT * FROM  USER LIMIT (n-1)m,m   第N页
     * @param pageResult
     * @return
     */
    @Override
    public PageResult getUserList(PageResult pageResult) {//3
        //1.获取总记录数
        long total = userMapper.selectCount(null);
        //2.获取分页后的结果
        int pageNum = pageResult.getPageNum();  //页数
        int pageSize = pageResult.getPageSize();   //行数
        int startIndex = (pageNum-1) * pageSize;   //起始位置
        List<User> rows = userMapper.getUserList(startIndex,pageSize);
        //将数据进行封装
        pageResult.setTotal(total).setRows(rows); //+2个参数
        return pageResult;  //最终5个参数返回
    }
 

3.3.6 编辑UserMapper接口

1). 编辑Mapper接口
在这里插入图片描述
2. 编辑XML映射文件
在这里插入图片描述

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值