代码编织梦想

Session的基本使用

在这里插入图片描述
可以在浏览器中查看设置的session
在这里插入图片描述
从浏览器中查看时会发现这个session只在auth.sanjh.com这个域名中存在,而在mall.sanjh.com中不存在,可以手动修改auth.sanjh.com为.sanjh.com,这时mall.sanjh.com的页面就可以获取session

这是因为二级域名mall.sanjh.com可以共享一级域名www.sanjh.com的session

在这里插入图片描述

这就是session共享问题,主要存在以下两种场景:
在这里插入图片描述
针对session共享的问题,主要有以下几种解决方式:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以发现引入redis中间件后session共享问题就可以得到很好的解决,而在spring中也已经集成了分布式session的解决方案

分布式Session

  1. 引入依赖
    <dependency>
       <groupId>org.springframework.session</groupId>
       <artifactId>spring-session-data-redis</artifactId>
    </dependency>
    
  2. 配置文件
    namespace默认的命名空间是spring:session
    spring:
      session:
        store-type: redis
        redis:
          namespace: spring:session
    
  3. 启动类添加注解@EnableRedisHttpSession
  4. 配置类
    @Configuration
    public class MySessionConfig {
    
        /**
         * 自定义Cookie的配置
         *
         * @return
         */
        @Bean
        public CookieSerializer cookieSerializer() {
            DefaultCookieSerializer cookieSerializer = new DefaultCookieSerializer();
            cookieSerializer.setDomainName("sanjh.com"); // 设置session对应的一级域名
            cookieSerializer.setCookieName("mallsession");
            return cookieSerializer;
        }
    
        /**
         * 对存储在Redis中的数据指定序列化的方式
         *
         * @return
         */
        @Bean
        public RedisSerializer<Object> redisSerializer() {
            return new GenericJackson2JsonRedisSerializer();
        }
    }
    
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_52964909/article/details/129834722

分布式session详解-爱代码爱编程

Session的作用? Session 是客户端与服务器通讯会话跟踪技术,服务器与客户端保持整个通讯的会话基本信息。 客户端在第一次访问服务端的时候,服务端会响应一个sessionId并且将它存入到本地cookie中,在之后的访问会将cookie中的sessionId放入到请求头中去访问服务器,如果通过这个sessionid没有找到对应的数据那么服务器

分布式session解决方案-爱代码爱编程

分布式环境session解决的4个方案 方案1:session复制(session同步) 原理:就是让这两个服务器之间互相同步session,比如左边服务器之前保存了一个1,右边服务器之前保存了一个2,他们两个一同步,那么左边服务器保存了1,2,右边服务器也保存了1,2。这样做的话,我们无论去哪个服务器,都相当于能拿到全量的session数据,这样

spring boot 分布式session实现_肥肥技术宅的博客-爱代码爱编程

spring boot 分布式session实现 主要是通过包装 HttpServletRequest 将 session 相关的方法进行代理。 具体是的实现就是通过 SessionRepositoryFilter 过滤器将 HttpServletRequest 对象进行包装,当调用 session 相关的方法时,代理到 SessionReposito

分布式session_qq_52631044的博客-爱代码爱编程

1.什么是session 会话:用户打开浏览器,点击多个超连接,访问多个服务器资源,然后关闭浏览器,整个过程称为一个会话 会话问题解决:服务器要为每个用户保存各自的数据(登录状态和一些其他信息) 。 会话技术cooKie和会话技术session的区别? Cookie是客户端技术,用户输入用户名密码访问的时候,服务器会创建一个SessionID和会话

使用springsession完成分布式session_拾光师的博客-爱代码爱编程

系列文章目录 文章目录 系列文章目录使用springSession完成分布式session 使用springSession完成分布式session 原文链接 https://zhhll.icu/

spring boot框架都有哪些优点和缺点?-爱代码爱编程

相较于传统的Spring框架,Spring Boot 框架具有以下优点。 1.可快速构建独立的 Spring 应用 Spring Boot是一个依靠大量注解实现自动化配置的全新框架。在构建Spring应用时,我们只需要添加相应的场景依赖,Spring Boot就会根据添加的场景依赖自动进行配置,在无须额外手动添加配置的情况下快速构建出一个独立的Sp

18-爱代码爱编程

题目 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 图示两个链表在节点 c1 开始相交: 题目数据保证整个链式结构中不存在环。 注意,函数返回结果后,链表必须 保持其原始结构 。 自定义评测: 评测系统的输入如下(你设计的程序不适用此输入):