jsp中使用URL重写跟踪Session,浏览器不支持Cookie的解决方案
2013-10-17 22:32
246 查看
大家都知道session关浏览器就会清除(即使sessionid会写到客户端的cookie中),如果浏览器新建一个父窗口,在原窗口不关闭的情况下,共享一个sessionId。在一次会话中,session是基于cookie的,也就是说当cookie被删除时,session又会创建。当客户端禁掉cookie时,就要通过URL重写获取sessionId,且sessionId不会改变。
HttpServletResponse接口提供了encodeURL(String url)实现URL地址重写。例如:
<a href=”<%= response.encodeURL(“index.jsp?c=1&wd=Java”) %>”>Homepage</a>
该方法会自动判断客户端是否支持Cookie。如果客户端支持Cookie,会将URL原封不动输出来。如果客户端不支持Cookie,则会将用户Session的ID重写到URL中。重写后的输出可能是这样的:
http://localhost:8080/xxx/index.jsp;jsessionid=091A82E070579D3FA881FE901E532422?c=1&wd=Java
其中jsessionid后面跟的就是session.getId()的值,这样session就可以使用了。
清掉request携带的所有cookie
Cookie[] cookies = request.getCookies();
for(int i = 0; i < cookies.length; i++){
cookies[i].setMaxAge(0);
response.addCookie(cookies[i]);
}
HttpServletResponse接口提供了encodeURL(String url)实现URL地址重写。例如:
<a href=”<%= response.encodeURL(“index.jsp?c=1&wd=Java”) %>”>Homepage</a>
该方法会自动判断客户端是否支持Cookie。如果客户端支持Cookie,会将URL原封不动输出来。如果客户端不支持Cookie,则会将用户Session的ID重写到URL中。重写后的输出可能是这样的:
http://localhost:8080/xxx/index.jsp;jsessionid=091A82E070579D3FA881FE901E532422?c=1&wd=Java
其中jsessionid后面跟的就是session.getId()的值,这样session就可以使用了。
清掉request携带的所有cookie
Cookie[] cookies = request.getCookies();
for(int i = 0; i < cookies.length; i++){
cookies[i].setMaxAge(0);
response.addCookie(cookies[i]);
}
相关文章推荐
- jsp中使用URL重写跟踪Session,浏览器不支持Cookie的解决方案
- 少部分手机浏览器对于COOKIE支持不够导致服务端无法读取session的解决方案
- URL重写 浏览器禁用cookie后使用session的方法
- 浏览器禁用cookie后,怎么使用session,求解决方案
- 浏览器禁用cookie后,怎么使用session,求解决方案
- 对于不支持cookie的浏览器,使用response.encodeURL方法来使用session
- 对于不支持cookie的浏览器,使用response.encodeURL方法来使用session
- JAVAWEB开发之JSP、EL、及会话技术(Cookie和Session)的使用详解
- 判断当前浏览器不支持或Cookie已被禁用呢?可以使用以下js代码:
- 当cookie禁用时怎么使用session技术--URL重写技术
- 浏览器不支持cookie的解决方案收集,请大家支招。
- 判断是否为移动浏览器;判断是否支持滑动事件;通过手势来改变图片大小;使用手机GPS定位用户所在的城市;利用浏览器的cookie保存用户名;
- 使用uploadify时session及cookie失效解决方案
- IIS安全工具UrlScan介绍 ASP.NET 两种超强SQL 注入免费解决方案( 基于IIS,使用免费工具) 批改或隐藏IIS7.5的Server头信息 移除X-Powered-By,MVC,ASP.NET_SessionId 的 HTTP头或者cookie名称
- cookie禁用后session怎么使用url重写详细讲解
- 使用IsLine FrameWork开发ASP.NET程序之八—使用Session、Cookie与安全支持
- 如果用户将浏览器的cookie禁用,问session还能使用吗?为什么?如何解决?
- 当浏览器的cookie被禁用了,怎么使用session
- PHP---浏览器禁用cookie后如何使用session
- ie8以下版本(包括ie8)的浏览器不支持html5标签属性解决方案(Modernizr 2.6.2插件的使用)