解决禁用cookie
展开全部
大家知道,session的保存是靠cookie保存id的,但是有一些用户的浏览器设置的是"禁用cookie",那么我们用到session的网站部署上去就会影响用户访问session吗?很显然不能,所以我们要在开发阶段解决这种问题的发生。
如果cookie被禁用的话,session的id号就不会被浏览器记录,此时用户就看不到取得session页面中的session信息。
解决方法:URL路径重写。
详细点说就是,在页面1用户创建的session,并且cookie给它设定了id号,在页面2使用此session的时候,设置点击超链接时,路径上给一个参数带过去(如http;//localhost:8080/day07/SessionDemo4?id=XXX)
具体实现:
//进主页的session会用到最后
request.getSession();
//这个方法会自动的在URL上面加上session的id号(如果cookie被禁用的话,如果cookie没有被禁用,就不会加session的id号)
Stringurl1=response.encodeURL("/day07/SessionDemo1");
Stringurl2=response.encodeURL("/day07/SessionDemo2");
out.write(" 购买 ");
out.write(" 结账 ");
上面URL的效果:
<a href="/xxx/SessionDemo1;jsessionid=572FCD20D16825556EAAD9E8B1D3984D">购买</a><br/>
<a href="/day07/SessionDemo2;jsessionid=572FCD20D16825556EAAD9E8B1D3984D">结账</a>
浏览器第一次访问服务器的时候,cookie带值,当浏览器第二次访问服务器时,服务器会向浏览器去要cookie,如果浏览器没有禁用cookie,那么服务器就得到浏览器相应的值,但是如果浏览器禁用了cooki会查看URL上是否带有拥有session的id的cookie。
如果cookie被禁用的话,session的id号就不会被浏览器记录,此时用户就看不到取得session页面中的session信息。
解决方法:URL路径重写。
详细点说就是,在页面1用户创建的session,并且cookie给它设定了id号,在页面2使用此session的时候,设置点击超链接时,路径上给一个参数带过去(如http;//localhost:8080/day07/SessionDemo4?id=XXX)
具体实现:
//进主页的session会用到最后
request.getSession();
//这个方法会自动的在URL上面加上session的id号(如果cookie被禁用的话,如果cookie没有被禁用,就不会加session的id号)
Stringurl1=response.encodeURL("/day07/SessionDemo1");
Stringurl2=response.encodeURL("/day07/SessionDemo2");
out.write(" 购买 ");
out.write(" 结账 ");
上面URL的效果:
<a href="/xxx/SessionDemo1;jsessionid=572FCD20D16825556EAAD9E8B1D3984D">购买</a><br/>
<a href="/day07/SessionDemo2;jsessionid=572FCD20D16825556EAAD9E8B1D3984D">结账</a>
浏览器第一次访问服务器的时候,cookie带值,当浏览器第二次访问服务器时,服务器会向浏览器去要cookie,如果浏览器没有禁用cookie,那么服务器就得到浏览器相应的值,但是如果浏览器禁用了cooki会查看URL上是否带有拥有session的id的cookie。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
Storm代理
2023-07-25 广告
2023-07-25 广告
StormProxies是一家可靠的代理服务提供商,提供原生IP(住宅原生IP)和高匿名代理服务。以下是关于StormProxies的原生IP服务的一些信息:1. 住宅原生IP:StormProxies提供的住宅原生IP是指从真实的家庭或企...
点击进入详情页
本回答由Storm代理提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询