栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

用户登录优化-用户会话session

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

用户登录优化-用户会话session

什么是Session会话

  • Session 就一个接口(HttpSession)。
  • Session 就是会话。它是用来维护一个客户端和服务器之间关联的一种技术。
  • 每个客户端都有自己的一个 Session 会话。
  • Session 会话中,我们经常用来保存用户登录之后的信息。

Session:在计算机中,尤其是在网络应用中,称为“会话控制”。

  • Session对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的Web页之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。
  • 当用户请求来自应用程序的 Web页时,如果该用户还没有会话,则Web服务器将自动创建一个 Session对象。当会话过期或被放弃后,服务器将终止该会话。
  • Session 对象最常见的一个用法就是存储用户的首选项。

session对象主要是存在服务器端,用于保存服务器的临时数据的对象,所保存的数据可以在整个项目中都可以通过访问来获取,把session的数据看做一个共享的数据。首次登录的时候所获取到的数据,转移到session对象即可。session.getAttrbute(“key”)可以将获取session中的数据这种行为进行封装,封装在BaseController类中。


1、封装session对象中数据的获取(封装在父类中)、数据的设置(当用户登陆成功后进行数据的设置,设置到全局的session对象) 2、在父类中封装两个数据:获取uid和username。头像暂时不考虑,将来封装在cookie中使用
 
    protected final Integer getuidFromSession(HttpSession session){
        return  Integer.valueOf(session.getAttribute("uid").toString());
    }

    
    protected final String getUsernameFromSession(HttpSession session){
        return  session.getAttribute("username").toString();
    }
3、在登录方法中将对象数据封装在session对象中。

服务器本身自动创建有session对象,已经是一个全局的session对象
Springboot直接使用session对象,直接将HTTPSession类型的对象作为请求处理方法的参数,会自动将全局的session对象注入到请求处理方法 的session形参上

  @RequestMapping("login")
    public JsonResult login(String username, String password, HttpSession session){
        User data = userService.login(username, password);
        //向session对象中完成数据的绑定(全局的)
        session.setAttribute("uid", data.getUid());
        session.setAttribute("username", data.getUsername());
        //获取session中绑定的数据
        System.out.println(getuidFromSession(session));
        System.out.println(getUsernameFromSession(session));

        return new JsonResult<>(ok,data);
    }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/914211.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号