Java学习三阶段-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是一种会话的一种机制, 新打开浏览器会建立一个会话机制.在该机制中可以存储数据.在会话的周期内,该数据一直有效. 当会话结束时 之前保存的数据将会被销毁.

1.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页面实现跳转
    Java学习三阶段-Day12_第1张图片
  2. 编辑前端路由跳转
    Java学习三阶段-Day12_第2张图片
  3. 页面效果展现
    Java学习三阶段-Day12_第3张图片

1.4 路由导航守卫

1.4.1 需求说明(1.0)

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

1.4.2 编辑index.js

说明: 编辑路由文件
Java学习三阶段-Day12_第4张图片
2.编辑路由内容,写的时候注意顺序位置.

Java学习三阶段-Day12_第5张图片

2 左侧菜单列表实现

2.1 编辑Rights POJO对象

Java学习三阶段-Day12_第6张图片

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获取远程服务器数据.
Java学习三阶段-Day12_第7张图片

2.3.2 业务接口文档说明

Java学习三阶段-Day12_第8张图片

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 页面效果展现

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

3 用户模块实现

3.1 欢迎页面跳转

说明: 要求用户跳转到/home页面时,在右侧默认展现welcome页面
Java学习三阶段-Day12_第10张图片
页面效果如下:
Java学习三阶段-Day12_第11张图片

3.2 用户模块说明

3.2.1 需求说明

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

3.2.2 user表说明

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

3.2.3 编辑User POJO对象

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

3.3 用户列表展现

3.3.1 页面Ajax说明

Java学习三阶段-Day12_第14张图片

  1. query不带参数的请求路径
    Java学习三阶段-Day12_第15张图片
  2. query带参数的请求路径
    Java学习三阶段-Day12_第16张图片

3.3.2 用户列表业务接口

  1. 参数说明
    Java学习三阶段-Day12_第17张图片
  2. PageResult对象
    Java学习三阶段-Day12_第18张图片

3.3.3 编辑PageResult对象

说明: 在jt.com.vo中编辑PageResult对象
Java学习三阶段-Day12_第19张图片

3.3.4 编辑UserController

Java学习三阶段-Day12_第20张图片

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接口
Java学习三阶段-Day12_第21张图片
2. 编辑XML映射文件
Java学习三阶段-Day12_第22张图片

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