URL重写实现会话跟踪
2013-01-04 13:13
435 查看
IT程序员开发必备-各类资源下载清单,史上最全IT资源,个人收藏总结!
为了防止用户禁用cookie,可以使用URL重写技术来实现会话跟踪!url重写原理:当服务器程序调用request.getSession();代码时,其会先看request.getCookies()方法中有没有名为JSESSIONID的cookie带过来,如果没有,就看URL有没有被重写(即附带JSESSIONID),如果有,则从服务器中找key为JSESSIONID的session对象,如果都没有,则创建一个新的session。如果用户禁用了cookie,则只能通过URL重写方式实现会话跟踪!
一、在Servlet中实现URL重写:
客户端在访问本Servlet后,会返回主页面:
package edu.session; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class EncodeURL extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter(); request.getSession(); //创建session //调用response的encodeURL方法,将自动将JSESSION追加到url后面,如:url;jsessionid=BD111FFC653497E81B702A29B3AC6FE4 String buyurl = response.encodeURL("/CookieAndSession/servlet/buy"); String payurl = response.encodeURL("/CookieAndSession/servlet/pay"); out.print("<a href='"+buyurl+"'>购买</a><br/>"); out.print("<a href='"+payurl+"'>结账</a><br/>"); } }http://localhost:8080/CookieAndSession/servlet/encodeurl(此事后cookie被禁用了)
源代码:
这样即可实现回跟踪。
注意:
1. 但是如果用户禁用cookie,则关闭了浏览器后,重新开启浏览器,则回话失效,无法实现回话跟踪;如果是用户没有禁用cookie,则可以通过设置装载JSESSIONID的cookie的失效时间来控制浏览器关闭后session仍未失效。
2.如果用户没有禁用cookie,而且又使用URL重写,则:用户在第一次访问EncodeURLServlet时,由于不知道用户是否禁用了cookie,所以response.encodeURL()方法内部会将JSESSIONID重写在url上,但是一旦第二次访问时,由于用户是带着cookie来的,所以response.encodeURL()不会将JSESSIONID重写在url上。
相关文章推荐
- URL重写实现会话跟踪
- jsp的URL重写实现会话跟踪技术
- URL重写实现会话跟踪
- 会话跟踪技术:会话Cookie,URL重写和HttpSession
- 基于JsessionId的会话跟踪登录设计与实现
- 用URL重写来实现会话管理
- 传智播客Java web学习,url重写实现Session跟踪以及Session的持久化
- 用在WEB开发中实现会话跟踪实现
- 会话跟踪技术:会话Cookie,URL重写和HttpSession
- 九、实现会话跟踪的解决方案cookie
- jsp页面中的session、cookies、隐藏域、url重写四种会话及跟踪方式
- URL重写 实现会话管理 http状态保持
- 会话跟踪技术的四种实现方法及特点整理
- url重写实现session跟踪和一次性验证码的实现
- web开发中实现会话跟踪
- 哪项技术可以用在WEB开发中实现会话跟踪实现?
- 关于j2me应用实现会话跟踪
- 会话跟踪技术:会话Cookie,URL重写和HttpSession
- java中会话跟踪的实现
- 在WEB开发中会话跟踪技术的实现