最近接触这块,百度搜的资料不是很多,而且大部分都是一个介绍,谷歌上不去。。。现在有如下问题,希望有经验的前辈予以解答。
1、在不使用Redis缓存session的时候,我在action里取session都是这样:
HttpSession session = request.getSession();
我通过查阅资料得知,其原理大概就是在cookie里存放了一个sessionId,我的getSession的时候,通过这个sessionId取到对应的session。那么,我在使用Redis的时候,key是sessionId,value是session对象。这样对么?
2、Redis缓存session,我应该在哪一步将session对象放到Redis里呢?其实说到底,我就是对session对象是什么时候产生的有些搞不明白。比如我有一个网站,www.test.com。这个网站有登录功能,那么,session是在我打开www.test.com的时候就产生了,还是我点击“登录”的时候才产生的呢?
3、其实和2是一个问题。
我现在的想法如下:写一个filter,在filter里拦截所有请求,新建session和sessionId,并且把他们存到Redis里,把sessionId写到cookie里。之后在用到session的时候,直接在Redis里取session对象拿来用。我的这个想法对么?如果对,可否有前辈贴上示例代码看看。如果不对,请指正。
4、不同的容器是否实现不同?比如我在百度上看到,“Tomcat下用redis缓存session”,“weblogic下redis缓存session”。。。这些不同的容器缓存session的实现不一样么?如果不一样,那么是否代表我3中的想法是错的啊。。
以上就是我的问题,望有经验的前辈予以指导。