禁用Cookie后Servlet不能共享数据
◆ 解决方案:URL重写
■response.encodeRedirectURL(java.lang.Stringurl)
■用于对sendRedirect方法后的url地址进行重写
■response.encodeURL(java.lang.String url)
■用于对表单action和超链接的url地址进行重写
encodeURL (String url)方法的实现机制为:
● 先判断当前的 Web 组件是否启用 Session,如果没有启用Session,直接返回参数 url。
● 再判断客户端浏览器是否支持Cookie,如果支持Cookie,直接返回参数 url;如果不支持 Cookie,就在参数 url 中加入 Session ID 信息,然后返回修改后的 url
//购物大厅
request.getSession();//先尝试获取session
for(Book book:mydb){
Stringurl=response.encodeURL("/myCart/BuyBookCl?id="+book.getId());
out.println(book.getName()+"<ahref='"+url+"'>点击购买</a><br/>");
}
//购物车这里我们也需要url地址重写
String url=response.encodeURL("/myCart/ShowBook");
out.println("<a href='"+url+"'>返回购物大厅<a/>");
本文介绍在禁用Cookie的情况下如何通过URL重写技术使Servlet能够共享数据。重点介绍了两种方法:response.encodeRedirectURL和response.encodeURL,并详细解释了encodeURL方法的工作原理及其在购物场景中的具体应用。
890

被折叠的 条评论
为什么被折叠?



