封装实体类:PageBean
public class PageBean<T> { private int currentPage;//当前页 private int currentCount;//页面显示条数 private int totalCount;//总条数 private int totalPage;//总页数 private List<T> list;//当前页 }
service分页实现:
ProductDao dao = new ProductDao(); //封装一个pageBean PageBean<Product> pageBean = new PageBean<Product>(); //1.封装当前页 pageBean.setCurrentPage(currentPage); //2.封装每页显示条数 pageBean.setCurrentCount(currentCount); //3.封装总条数 int totalCount =0; try { totalCount = dao.getCount(cid); } catch (SQLException e) { } pageBean.setTotalCount(totalCount); //4.封装总页数 int totalPage = (int) Math.ceil(1.0*totalCount/currentCount); pageBean.setTotalPage(totalPage); //5.封装当前页显示的数据 int index= (currentPage-1)*currentCount;//起始索引 List<Product> list =null; try { list = dao.findProductByPage(cid,index,currentCount); } catch (SQLException e) { e.printStackTrace(); } pageBean.setList(list); return pageBean;
productInfo Servlet 打开商品页面,写入cookie
//获得客户端携带cookie---获得名字是pids的cookie
String pid = request.getParameter("pid"); String pids = pid; Cookie[] cookies = request.getCookies(); if(cookies!=null){ for(Cookie cookie : cookies){ if("pids".equals(cookie.getName())){ pids = cookie.getValue(); //1-3-2 本次访问商品pid是8----->8-1-3-2 //1-3-2 本次访问商品pid是3----->3-1-2 //1-3-2 本次访问商品pid是2----->2-1-3 //将pids拆成一个数组 String[] split = pids.split("-");//{3,1,2} List<String> asList = Arrays.asList(split); LinkedList<String> list = new LinkedList<String>(asList); //判断集合中是否存在当前pid if(list.contains(pid)){ list.remove(pid); list.addFirst(pid); }else{ list.addFirst(pid); } //将[3,1,2]转成3-1-2字符串 StringBuffer sb = new StringBuffer(); for(int i = 0; i <list.size()&&i<7 ; i++){ sb.append(list.get(i)); sb.append("-"); } //去掉3-1-2-后的- pids = sb.substring(0, sb.length()-1); } } } Cookie cookie_pids = new Cookie("pids",pids); response.addCookie(cookie_pids); //转发前,创建cookie存储pid request.getRequestDispatcher("/product_info.jsp").forward(request, response);
productListBYCid Servlet 打开商品列表,读取cookie
//定义一个记录历史商品信息的集合 List<Product> historyProductList = new ArrayList<Product>(); Cookie[] cookies = request.getCookies(); if(cookies!=null){ for(Cookie cookie : cookies){ if("pids".equals(cookie.getName())){ String pids = cookie.getValue(); String[] split = pids.split("-"); for(String pid : split){ Product product = service.findProductByPid(pid); historyProductList.add(product); } } } } request.setAttribute("historyProductList", historyProductList); request.getRequestDispatcher("/product_list.jsp").forward(request, response);