• <tr id='49VHEk'><strong id='49VHEk'></strong><small id='49VHEk'></small><button id='49VHEk'></button><li id='49VHEk'><noscript id='49VHEk'><big id='49VHEk'></big><dt id='49VHEk'></dt></noscript></li></tr><ol id='49VHEk'><option id='49VHEk'><table id='49VHEk'><blockquote id='49VHEk'><tbody id='49VHEk'></tbody></blockquote></table></option></ol><u id='49VHEk'></u><kbd id='49VHEk'><kbd id='49VHEk'></kbd></kbd>

    <code id='49VHEk'><strong id='49VHEk'></strong></code>

    <fieldset id='49VHEk'></fieldset>
          <span id='49VHEk'></span>

              <ins id='49VHEk'></ins>
              <acronym id='49VHEk'><em id='49VHEk'></em><td id='49VHEk'><div id='49VHEk'></div></td></acronym><address id='49VHEk'><big id='49VHEk'><big id='49VHEk'></big><legend id='49VHEk'></legend></big></address>

              <i id='49VHEk'><div id='49VHEk'><ins id='49VHEk'></ins></div></i>
              <i id='49VHEk'></i>
            1. <dl id='49VHEk'></dl>
              1. <blockquote id='49VHEk'><q id='49VHEk'><noscript id='49VHEk'></noscript><dt id='49VHEk'></dt></q></blockquote><noframes id='49VHEk'><i id='49VHEk'></i>
                Spring Session教程
                Spring Session常见的应用场景
                Spring Session的执行流程
                Session会话管理

                Spring Session教程

                Spring Session简介

                Spring Session 是Spring家族中的一个子项目,它提供一组API和实现,用于管理用※户的session信息;

                它把servlet容器实现的httpSession替换为spring-session,专注于解∏决 session管理问题,Session信息存储在Redis中,可简单快速Ψ 且无缝的集成到我们的应用中。

                官网:https://spring.io/

                Spring Session的特性

                • 提供用户session管理的API和实现

                • 提供HttpSession,以中立的方式取代web容器的session,比如tomcat中的session

                • 支持集群的session处理,不必绑⊙定到具体的web容器去解决集群下的session共享问题

                Spring Session入门案例

                1. 环境配置

                ①  创建一个空的〓Maven project,名字及路径根据自己的情况定。

                ② 空project创建好后,会提示创建模块,我们暂时先【取消

                ③ 设置字体

                ④ 设置编码方式

                ⑤ 设置maven信息

                ⑥ 创建一个Maven的web module,名字为01-springsession-web

                ⑦ 完善Maven项目的结构

                A、 在main目录下,创建java目录,并标记为Sources Root

                B、 在main目录下,创建resources目录,并标记为Resources Root

                2. 代码开发

                ① 创建向session放数据的servlet

                在java目录下创建包com.bjpowernode.session.servlet包

                在servlet包下创建SetSessionServlet

                在Servlet中通︽过注解指定urlPatterns,并编※写代码

                ② 创建从session放数据的servlet

                在servlet包下创建GetSessionServlet

                在Servlet中通过注解指定urlPatterns,并编写代码

                ③ 向pom.xml文件中添加servlet及jsp的配置

                ④ 部署访问测▅试(目前无法实现session共享)

                A、 配置tomcat9100服务器

                打开Edit Configurations选项

                添加tomcat配置

                给tomcat服务器①取名,并修改端口号

                将项目№部署到tomcat9100上

                指定项目的♂上下文根为/01-springsession-web

                为了实现热部署,在Server选项卡中,配置※以下两个选项

                B、 配置tomcat9200服务器

                操作步骤同配置tomcat9100,配完之后在Application Servers窗口中如下

                3. SpringSession集成配置

                ① 在pom.xml文件中,添加Spring Session相关的依赖

                ② 在web.xml文件中配置springSessionRepositoryFilter过滤器

                ③ 在web.xml文件中加载Spring配置文件

                ④ 创建applicationContext-session.xml

                A、 配置一个RedisHttpSessionConfiguration类

                <context:annotation-config/>:用于激◤活已经在Spring容器中注册的bean或者注解,因为我们通过容器创建的bean中,底层有可能使用了其它的注解,我们通过<context:component-scan>就不能指定具体的包了,所以可以使用←<context:annotation-config/>激活

                B、 配置Spring-data-redis 

                <!-- 配置jedis连接工厂,用于连接redis -->
                <bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
                    <property name="hostName" value="${redis.hostName}"/>
                    <property name="port" value="${redis.port}"/>
                    <property name="password" value="${redis.password}"/>
                    <property name="usePool" value="${redis.usePool}"/>
                    <property name="timeout" value="${redis.timeout}"/>
                </bean>
                
                <!--读取redis.properties属性配置文件-->
                <context:property-placeholder location="classpath:redis.properties"/>

                ⑤ 配置redis.properties文件

                redis.hostName=192.168.235.128
                redis.port=6379
                redis.password=123456
                redis.usePool=true
                redis.timeout=15000

                ⑥ 在applicationContext.xml中导入applicationContext-session.xml

                点击config将这两个配置文件进行关联

                4. 部署测试

                ① 思路

                为了演示session的共享,我们这里配置两个tomcat服务器,端口号分别为9100和9200,将我们上面创建好的项目分别部署到这两台服务器上。一台服务器执行放session,另一台服务器执行取session的操作

                ② 启动Linux上的redis服务器

                ③ 启动两台tomcat服务器

                在浏览器中访问tomcat9100服务器的setSession

                Ø 在浏览器中访问tomcat9200服务器的getSession

                ④ 分析

                tomcat9200服务器上的项目可以访问tomcat9100上的session,说明session共享成功

                ⑤ 进一∮步验证

                打开Resis客户端工具(RedisDesktopManager),查看Redis里面的session数据

                其实标准的redis的key格式就是用冒号分∮割,客户端工具会以目录的形式展示

                全部教程