日期:2014-05-17  浏览次数:20805 次

localhost和127.0.0.1的问题
今天用struts2编写一个程序,如果登陆界面使用localhost如下
http://localhost:8080/ElearningAdmin/login.jsp
之后将用户对象存入session中,然后到下个画面如:
http://localhost:8080/ElearningAdmin/show.jsp
从session中去对象没有问题,但是如果使用
http://127.0.0.1:8080/ElearningAdmin/show.jsp
则取到的session对象中的用户是null,为什么 ~ ~ ~

------解决方案--------------------
因为 Session ID 是记在 Cookie 中的,而 Cookie 存在一个限制,即同源策略。也就是说,Cookie 从客户端发送到服务端,只能是相同协议、相同域名、相同端口的 Cookie 数据才能被发送。

由于 http://localhost:8080 与 http://127.0.0.1:8080 的域名不同,所以在 localhost:8080 下产生的 Cookie 数据不会放在 127.0.0.1:8080 的请求头中去,因此服务端无法获取 Session ID 值,也就无法获取之前的 Session