springmvc+springsession实现session共享
来源:互联网 发布:mac 断点续传工具 编辑:程序博客网 时间:2024/06/06 06:54
pom.xml文件
<?xml version="1.0" encoding="UTF-8"?><web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <servlet> <servlet-name>spring</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring/spring-mvc.xml,classpath:spring/spring-session.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>spring</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <filter> <filter-name>springSessionRepositoryFilter</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> </filter> <filter-mapping> <filter-name>springSessionRepositoryFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping></web-app>
spring-mvc.xml
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <!-- 配置扫描的包 --> <context:component-scan base-package="com.coodean.demo.session.web" /> <!-- 注册HandlerMapper、HandlerAdapter两个映射类 --> <mvc:annotation-driven /> <!-- 访问静态资源 --> <mvc:default-servlet-handler /> <!-- 视图解析器 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/view/"></property> <property name="suffix" value=".jsp"></property> </bean></beans>
spring-session.xml
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd"> <context:property-placeholder location="classpath:redis.properties" /> <!-- 对象池配置 --> <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig"> <property name="maxTotal" value="${spring.redis.pool.maxTotal}" /> <!-- 控制一个pool可分配多少个jedis实例 --> <property name="maxIdle" value="${spring.redis.pool.maxIdle}" /> <!-- 控制一个pool最多有多少个状态为idle(空闲)的jedis实例 --> <property name="minIdle" value="${spring.redis.pool.minIdle}" /> <property name="maxWaitMillis" value="${spring.redis.pool.maxWaitMillis}" /> <!-- 表示当borrow一个jedis实例时,最大的等待时间,如果超过等待时间,则直接抛出JedisConnectionException --><!-- <property name="testOnBorrow" value="${redis.pool.testOnBorrow}" /> 在borrow一个jedis实例时,是否提前进行validate操作;如果为true,则得到的jedis实例均是可用的 <property name="testOnReturn" value="${redis.pool.testOnReturn}" /> <property name="testWhileIdle" value="${redis.pool.testWhileIdle}" /> --> </bean> <!-- 工厂实现 --> <bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory" destroy-method="destroy"> <property name="hostName" value="${spring.redis.host}" /> <property name="port" value="${spring.redis.port}" /> <property name="password" value="${spring.redis.password}" /> <property name="timeout" value="${spring.redis.timeout}" /> <property name="database" value="${spring.redis.database}" /> <!-- <property name="usePool" value="${redis.usePool}" /> --> <property name="poolConfig" ref="jedisPoolConfig" /> </bean> <!-- 模板类 --> <bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate"> <property name="connectionFactory" ref="jedisConnectionFactory" /> </bean> <!-- 使用spring-session把http session放到redis里 --> <bean id="redisHttpSessionConfiguration" class="org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration"> <property name="maxInactiveIntervalInSeconds" value="${session.maxInactiveIntervalInSeconds}" /> </bean></beans>
redis.properties
# REDIS (RedisProperties)# Redis数据库索引(默认为0)spring.redis.database=0# Redis服务器地址spring.redis.host=127.0.0.1 # Redis服务器连接端口spring.redis.port=6379# Redis服务器连接密码(默认为空)spring.redis.password=# 连接池最大连接数(使用负值表示没有限制)spring.redis.pool.maxTotal=8# 连接池最大阻塞等待时间(使用负值表示没有限制)spring.redis.pool.maxWaitMillis=-1# 连接池中的最大空闲连接spring.redis.pool.maxIdle=8# 连接池中的最小空闲连接spring.redis.pool.minIdle=0 # 连接超时时间(毫秒)spring.redis.timeout=0# 过期时间100分钟session.maxInactiveIntervalInSeconds=60
控制器中使用可以和单点一样使用session
package com.coodean.demo.session.web;import javax.servlet.http.HttpSession;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;@Controller@RequestMapping("")public class IndexController { @RequestMapping("login/{id}") @ResponseBody public String login(@PathVariable Long id, HttpSession httpsession){ httpsession.setAttribute("user", id); return "login"; } @RequestMapping("check") @ResponseBody public String check(HttpSession httpsession){ Long userId = (Long)httpsession.getAttribute("user"); if(userId == null) return "null"; else return userId.toString(); }}
0 0
- springmvc+springsession实现session共享
- mybatis+spring+springmvc+springsession + redis实现session共享配置
- SpringSession实现session共享--简单配置
- springboot利用springsession实现redis共享session,并且自定义sessionid
- SpringBoot(八)SpringBoot整合springsession实现分布式session共享
- SpringSession集成redis实现session共享(No bean named 'springSessionRepositoryFilter' available)
- SpringSession和Redis实现Session跨域
- Redis SpringSession+Redis实现分布式Session存储
- SpringSession使用redis存储HttpSession(共享session)
- spring+mybatis+springmvc+springsession+redis+duboo实现分布式集群架构
- Spring对Session共享的管理(1)-----SpringSession的优点
- spring-session实现session共享
- [Session共享]Tomcat集群实现Session共享
- [Session共享]Spring-Redis实现Session共享
- Session共享实现方案
- cas实现共享session
- redis实现session共享
- Tomcat实现Session共享
- 常用sql语句整理
- 基于python的知乎开源爬虫 zhihu
- 浅谈多线程中的懒汉式单例
- MYSQL基础语法
- JDK源码 Hash杂记
- springmvc+springsession实现session共享
- 计算机图形学——MFC和OpenGL两种方法实现光照模型
- Select 实例
- C++多态的实现原理
- 模块
- You don't have permission to access / on this server.
- 假如有Thread1、Thread2、ThreaD3、Thread4四条线程分别统计C、D、E、F四个盘的大小,所有线程都统计完毕交给Thread5线程去做汇总,应当如何实现?
- 字符串格式化
- 电子科技大学---操作系统课程实验(一)