简单做了一个测试,servlet中post方法存入session(存入之后立马去getAttribute是有值的),redis也存进去了,但是重新再请求get方法中request.getSession().getAttribute确是null,求解?
环境:jdk7+tomcat7+redis2.8
认证高级PHP讲师
redis放对象,取出是null,放字符串是好的,看来只能对象转json了
问题解决:bean对象没有序列化造成存redis异常,序列化之后正常
session的只在当前tomcat实例里有效,所以在多tomcat实例的情况下,不能使用request.getSession().getAttribute获取session,而是从redis中获取。
既然都用了redis了,就不需要再用容器里的session了吧。。
集群会话保持方案,可以将sessionId作为key存入redis(值是你要存的会话信息),取的时候当然从redis去取,tomcat不保存会话信息。
有一个第三方jar包,可以与tomcat集成,让session保存在redis.应用代码不需要关注此事
试试spring-session
redis放对象,取出是null,放字符串是好的,看来只能对象转json了
问题解决:bean对象没有序列化造成存redis异常,序列化之后正常
session的只在当前tomcat实例里有效,所以在多tomcat实例的情况下,不能使用request.getSession().getAttribute获取session,而是从redis中获取。
既然都用了redis了,就不需要再用容器里的session了吧。。
集群会话保持方案,可以将sessionId作为key存入redis(值是你要存的会话信息),取的时候当然从redis去取,tomcat不保存会话信息。
有一个第三方jar包,可以与tomcat集成,让session保存在redis.应用代码不需要关注此事
试试spring-session