浏览器禁用Cookie后的Session处理

1. 实现购物车, 可以基于Cookie, 也可以基于Session, 若服务器性能较差, 可以基于Cookie实现购物车

2. 解决方案: URL重写

把用户可能点的每一个超链接后面,都跟上用户的sessionid号

1) 对sendRedirect方法后的URL地址进行重写

response.encodeRedircetURL(url);

2) 对表单或超链接的URL地址进行重写

response.encodeURL(url);

3. 案例

1) 重写超链接的URL地址

1 out.write("本网站有如下书:<br/>");
2 Set<Map.Entry<String,Book>> set = DB.getAll().entrySet();
3 for(Map.Entry<String,Book> me : set){
4     Book book = me.getValue();
5     String url = "/day07/servlet/BuyServlet?id=" + book.getId();
6     url = response.encodeURL(url);
7     out.println(book.getName()  + "   <a href='"+url+"'>购买</a><br/>");
8 }

2) 重写sendRedirect方法的URL地址

1 HttpSession session = request.getSession();
2 String url = response.encodeRedirectURL("/day07/servlet/ListCartServlet");
3 response.sendRedirect(url);

猜你喜欢

转载自www.cnblogs.com/shaohsiung/p/9547799.html