1 使用cookie保存记录,而不用session保存。因为cookie可以设置生命周期
2.使用栈来保存访问的顺序,因为后进先显示
String pids=pid;
Cookie[]cookies=request.getCookies();
if(cookies!=null){
for(Cookie cookie :cookies){
if("pids".equals(cookie.getName())){
pids=cookie.getValue();
//将pids拆成一个数组
String[]split=pids.split("-");
List<String>asList=Arrays.asList(split);
LinkedList<String> list=new LinkedList<String>(asList);
if(list.contains(pid)){
list.remove(pid);
}
list.addFirst(pid);
StringBuffer sb=new StringBuffer();
for(int i=0;i<list.size();i++){
sb.append(list.get(i));
sb.append("-");
}
pids=sb.substring(0,sb.length()-1);
}
}
}
Cookie cookie_pids=new Cookie("pids",pids);
response.addCookie(cookie_pids);
cookie如果是第一次访问,商品id入栈。如果不是第一次访问则需要判断cookie栈中是否存在该商品的id,如果存在,则将其删除,重新入栈。如果不存在,入栈。最终,生成一个1-2-3-4的栈,数字代表id,根据id显示商品。