首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

展示商品历史浏览记录

2012-12-16 
显示商品历史浏览记录废话不多说,直接上代码package cn.itcast.cookieimport java.io.IOExceptionimport

显示商品历史浏览记录

废话不多说,直接上代码


package cn.itcast.cookie;import java.io.IOException;import java.io.PrintWriter;import java.util.Arrays;import java.util.Date;import java.util.LinkedList;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;//显示详细信息的servletpublic class CookieDemo4 extends HttpServlet {     public void doGet(HttpServletRequest request, HttpServletResponse response)               throws ServletException, IOException {          //根据用户带过来的id,显示相应的详细信息          response.setCharacterEncoding("UTF-8");          response.setContentType("text/html;charset=UTF-8");          PrintWriter out = response.getWriter();          String id=request.getParameter("id");          Book book=(Book)Db.getAll().get(id);          out.write(book.getId()+"<br/>");          out.write(book.getName()+"<br/>");               out.write(book.getAuthor()+"<br/>");          out.write(book.getDescription()+"<br/>");          //2.构建cookie,回写给浏览器;          String cookieValue=buildCookie(id,request);          Cookie cookie=new Cookie("bookHistory",cookieValue);          cookie.setMaxAge(1*30*24*3600);//1 个月          cookie.setPath("/day07");          response.addCookie(cookie);               }     private String buildCookie(String id, HttpServletRequest request) {          //bookHistory =null   1    1          //bookHistory=2,5,1   1    1,2,5          //bookHistory=2,5,4   1    1,2,5          //bookHistroy=2,5     1    1,2,5   // 假如列表最多3个          String bookHistroy=null;          Cookie cookies[]=request.getCookies();          for(int i=0;cookies!=null && i<cookies.length;i++){               if(cookies[i].getName().equals("bookHistory")){                    bookHistroy=cookies[i].getValue();                                   }          }          if(bookHistroy==null)               return id;          //if(bookHistroy.contains(id))不能这样  21,23 也包括1          List<String> list=Arrays.asList(bookHistroy.split("\\,"));          LinkedList <String>linkedlist=new LinkedList<String>(list);          if(list.contains(id)){               linkedlist.remove(id);               linkedlist.addFirst(id);          }else{               if(list.size()>=3){                    linkedlist.removeLast();                    linkedlist.addFirst(id);               }else                    linkedlist.addFirst(id);          }          StringBuffer sb=new StringBuffer();          for(String bid : linkedlist){               sb.append(bid+",");          }          return sb.deleteCharAt(sb.length()-1).toString();               }}



热点排行