session丢失问题总结

来源:互联网 发布:郝斌c语言视频教程mp4 编辑:程序博客网 时间:2024/04/30 06:00

1.现象:使用域名http://www.xxx.com/login.jsp登录后session丢失,但是使用IPhttp://ip/项目名/login.jsp访问session不会丢失。

2.原因分析:由于登录时的登陆地址是/login.do,然后向session中存登录信息,但是在拦截器或者controller中的访问路径是/项目名/login.do,由于路径不一致服务器就认为你登陆后和登录前次访问的不是一个项目,这样就是两个session了,因此登陆后取不到登录时存在服务器端session。

为了验证这个想法我做了次试验:

首先打开浏览器使用http://localhost:8080/xiangmu/登录后台,登陆成功后跳转到

http://localhost:8080/xiangmu/admin_index.do这个地址(项目使用了拦截器),然后浏览器没有关闭直接访问http://127.0.0.1:8080/weixin/admin_index.do发现被拦截器拦截了,也就是说session是空的,这就充分证明了项目地址不一样就相当于是不同项目不同session的猜想了!

3.解决方法:保持项目中登录时向session中存登录信息的URL和拦截器或controller中取session的路径命名一致,即都是绝对路径或者都是相对路径,即都加项目名或者都不加项目名即可!

原创粉丝点击