session,cookie的存取使用

springboot后端获取session https://blog.csdn.net/qq_52696994/article/details/129971298

1、退出清空session

  @RequestMapping("/logout")
    public String logout(HttpServletRequest request, HttpSession session){
        Integer userid = (Integer)session.getAttribute("adminId");
        Object username = session.getAttribute("admin");
        if(StringUtils.isEmpty(userid) && StringUtils.isEmpty(username)){
            return "redirect:/login.html";
        }
        request.getSession().removeAttribute("adminId");
        request.getSession().removeAttribute("admin");
        request.getSession().getServletContext().removeAttribute("user_token");
        return "redirect:/login.html";
    }
引用:https://blog.csdn.net/weixin_43863007/article/details/88406486
2 、springboot后端获取session https://blog.csdn.net/qq_52696994/article/details/129971298
ServletContextSessionRequest区别 切记一定要看
https://blog.csdn.net/m0_61547956/article/details/125248953?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522169102304416800211527931%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=169102304416800211527931&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-13-125248953-null-null.142^v92^chatgptT0_1&utm_term=getServletContext%28%29.getAttribute%E5%92%8Csession.getAttribute&spm=1018.2226.3001.4187

```javascript
一、全局共享 随服务器关闭结束
ServletContext:Servlet上下文,针对所有客户端,相当于一个全局变量,只要服务器不关闭,所有用户都可以访问,共享数据,比如统计聊天室在线人数。
(1) 设置session HttpServletRequest request  
    request.getServletContext().setAttribute("adminId", admin.getAdminId());
	request.getServletContext().setAttribute("accountType", admin.getAccountType());
	request.getServletContext().setAttribute("admin", admin);

    存:request.getServletContext().setAttribute(mobile,code);
    取: String codeInSession = (String) request.getServletContext().getAttribute(mobile);


 (2) 获取session
  @AuthIgnore
    @RequestMapping("/getInfo")
    public R getInfo( HttpServletRequest request){
        Integer adId = (Integer) request.getServletContext().getAttribute("adminId");
        School dataInfo = schoolService.selectByAdminId(adId);
        List<School> userList = new ArrayList<>();
        userList.add(dataInfo);
        return R.ok().put("rows", userList).put("total", 1);
    }
二、session是一次会话,针对一个用户(浏览器),从打开到关闭会话结束,有的人说的session从浏览器打开到关闭并不是session生命周期结束了,在服务端还有,只是在客户端浏览器关闭,会话cookie结束,所以我们下次再去访问服务器就不是带的同一个sessionid。
request针对一个请求,请求转发,用完就扔

session 存取
         HttpServletRequest request (方法里)
       存 session
        HttpSession session = request.getSession();
		session.setAttribute("adminId", admin.getAdminId());
		session.setAttribute("accountType", admin.getAccountType());
		session.setAttribute("admin", admin);
	   取 session
	   Admin admin2 = (Admin) session.getAttribute("admin");

https://blog.csdn.net/qq_32233421/article/details/50948856?spm=1001.2101.3001.6650.2&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-2-50948856-blog-86488565.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-2-50948856-blog-86488565.pc_relevant_default&utm_relevant_index=4

Servelete
存取session值
HttpServletRequest request
request.setCharacterEncoding(“UTF-8”);
response.setContentType(“text/html;charset=UTF-8”);
request.getSession().setAttribute(“admin”, “系统管理员”);

获取session值
HttpServletRequest request = ServletActionContext.getRequest();
HttpSession session = request.getSession();
String userSession = request.getSession().getAttribute(“userId”);

获取工程名
${pageContext.request.contextPath}
前端获取值
${admin}
存session
HttpServletRequest request (方法参数)
request.getSession().setAttribute(“admin”, admin);
在这里插入图片描述
取 session
HttpServletRequest request (方法参数)
Object admin = session.getAttribute(“admin”);
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值