zoukankan      html  css  js  c++  java
  • Springboot使用session

    背景

    浏览器发起请求--> 服务端创建session,会话建立--> 服务端返回sessionId作为cookie存储在浏览器中;

    浏览器再次发起请求,并且带着cookie--> 服务端通过cookie认证,确认是刚才建立的会话。


    代码实现

    这里使用的注解因为是代理对象,所以不用担心单例的问题

        @Autowired
        HttpServletRequest httpServletRequest;
    
    package com.example.testsession.controller;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    import org.springframework.web.bind.annotation.RestController;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpSession;
    
    
    @RestController
    @RequestMapping("/session")
    public class SessionController {
    
        @Autowired
        HttpServletRequest httpServletRequest;
    
        /**
         * 创建会话,并给session添加值
         *
         * @return
         */
        @RequestMapping("/set")
        @ResponseBody
        public void set() {
            System.out.println("----初次会话----");
    //        获得session,如果没有,自动创建一个
            HttpSession mySession = httpServletRequest.getSession();
            String mySessionId = mySession.getId();
    
            mySession.setAttribute("abc", "123");
    
            System.out.println("mySessionId:" + mySessionId);
    
        }
    
        /**
         * 浏览器通过cookie和服务端进行第二次会话
         */
        @RequestMapping("/get")
        @ResponseBody
        public void get() {
            System.out.println("----二次会话----");
    //        获得session,如果没有,返回null
            HttpSession mySession = httpServletRequest.getSession(false);
            String myCookie = mySession.getId();
    
            String vCode = (String) mySession.getAttribute("abc");
    
            System.out.println("myCookie:" + myCookie);
            System.out.println("get-s:" + vCode);
        }
    
    
    }
    
    

    通过路径访问

    http://localhost:8080/session/set
    

    http://localhost:8080/session/get
    

  • 相关阅读:
    2014年寒假学习规划
    二十进制数的加法--【英雄会】
    使用IBM SVC构建vSphere存储间集群
    游戏服务器学习笔记 2———— 准备工作
    php判断正常访问和外部访问
    游戏服务器学习笔记 3———— firefly 的代码结构,逻辑
    数学基础知识 ——(1)高等数学
    动态内存与智能指针
    Numpy(4)—— 保存和导入文件
    Numpy(3)—— 线性代数相关函数
  • 原文地址:https://www.cnblogs.com/lyd447113735/p/14875594.html
Copyright © 2011-2022 走看看