手机网上商城-项目经验总结(八)-商品浏览记录

8.实现商品浏览记录
// 通过PID查找单商品
public void findProductByPid(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
String pid = request.getParameter("pid");
Product product = ps.findProductByPid(pid);
request.setAttribute("product", product);
// 浏览记录
String pids = pid;
Cookie[] cookies = request.getCookies();
if (cookies != null) {
for (Cookie cookie : cookies) {
// 找到key为pids的cookie
if (cookie.getName().equals("pids")) {// 如果有pids的cookie说明不是第一次点击商品详情了
// 拼接pid们组成的pids字符串
String[] pid_stirngs = cookie.getValue().split("!");
// 将字符串数组转化为linkList
List<String> list = Arrays.asList(pid_stirngs);
LinkedList<String> linkedList = new LinkedList<String>(list);
// 此次点击的产品的pid在不在linkedList内,如果不在,那么直接添加到首位,如果在,之前一样的再添加到首位
if (linkedList.contains(pid)) {
// 删除之前一样的
linkedList.remove(pid);
// 添加至首位
linkedList.addFirst(pid);
} else {
// 添加至首位
linkedList.addFirst(pid);
}
// 只保留5个
if (linkedList.size() > 5) {
linkedList.subList(5, linkedList.size()).clear();
}
// //将linkedlist转换为字符串数组
// StringBuffer sbuffer = new StringBuffer();
// for (String string : linkedList) {
// sbuffer.append(string);
// sbuffer.append("!");
// }
// //去掉最后的!
// sbuffer.deleteCharAt(sbuffer.length() - 1);
// //将新的字符串赋给pids
// pids = sbuffer.toString();
pids = StringUtils.join(linkedList, "!");
}
}
}
Cookie cookie = new Cookie("pids", pids);
response.addCookie(cookie);
request.getRequestDispatcher("/product_info.jsp").forward(request,
response);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值