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);