当用户不接受Cookie时,可以使用URL重写机制跟踪用户会话。URL重写技术会在URL请求中嵌入标识客户的SessionID,使用Servlet容器解释URL并取出SessionID。
//用于自动重写超链接和form表单的action属性的url
public String encodeURL(String url)
//用于自动重写要传递给HttpServletResponse接口中的sendRedirect()方法的URL
public String encodeRedirectURL(String url)
两个方法首先会判断客户请求消息中是否包含Cookie字段,如果没有则表示客户端不支持Cookie,它将会把回话ID作为JSESSIONID参数值连接到URL末尾,如果有则不会附加JSESSIONID参数值。
正常写href跳转
<a href="跳转地址">跳转</a>
如果浏览器禁用了cookie,跳转到网址后则会获取不到cookie值。
这时候需要用URL重写技术来生成跳转地址
<a href=" response.encodeURL("跳转地址") ">跳转</a>
response.encodeURL("跳转地址")会自动生成带有cookie值的地址