为了账号安全,请及时绑定邮箱和手机立即绑定

detail页面问题

在同一个detail页面刷新,会出现多个相同的浏览记录

54c3787e0001bcb705000334.jpg

正在回答

4 回答

上面说的不通顺:

因为你是通过URL传值的,地址栏../detail.jsp?id=6 ,所以每次request.getParameter("id")都能得到值,而list+=request.getParameter("id")+","     这样list每次都会加上 6,显示的时候是用list根据这个字符串从数据库中取数据的,所以刷新一次,list增加一次,自然浏览商品增加一个


0 回复 有任何疑惑可以回复我~

因为你是通过URL传值的,地址栏../detail.jsp?id=6 ,所以每次request.getParameter("id"),所以

list+=request.getParameter("id")+","     这样list每次都会加上 6,显示的时候是用list根据这个字符串从数据库中取数据的,所以刷新一次,list增加一次,自然浏览商品增加一个

0 回复 有任何疑惑可以回复我~
<%
   	String list = "";
   	Cookie[] cookies = request.getCookies();
   	if(cookies!=null && cookies.length>0){
  		for(Cookie c:cookies){
   			if(c.getName().equals("ListViewCookie")){
   				list=c.getValue();
   			}
   		}
   	}
   	list+=request.getParameter("id")+ ",";
   	//如果浏览记录超过1000条,清零
   	String[] arr = list.split(",");
   	if(arr!=null && arr.length>0){
   		if(arr.length>=1000){
   			list="";
   		}
   	}
   	Cookie cookie = new Cookie("ListViewCookie",list);
   	response.addCookie(cookie);
 %>


0 回复 有任何疑惑可以回复我~
#1

血手人屠

我也想到这个问题(还愚蠢的又问了一遍。。。) 我是想 在 把新的ID加到list中时 先 把他和 String[] arr = list.split(","); arr中最近的一条记录作比较,不一样就更新list 否则还是把原来的list放回cookie 这样的想法能 避免一个商品的连续重复,不能避免两个商品循环重复。
2015-02-01 回复 有任何疑惑可以回复我~
#2

小王子抓猫咪 回复 血手人屠

这种简单的问题你自己认真想想就能解决。这种问题的本质就是一个字符串的问题,你直接在最近浏览的商品ID数组内寻找新的ID,如果存在,就不添加。不存在才添加新浏览的商品ID。这样你显示的商品记录表中就不会存在重复的商品了。
2015-02-08 回复 有任何疑惑可以回复我~

有可能添加cookie的时候是把之前的内容替换了。吧jsp页面的代码贴一下吧

0 回复 有任何疑惑可以回复我~
#1

暴风雨来了 提问者

看楼下,有关Cookie的代码
2015-01-26 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JAVA遇见HTML——JSP篇
  • 参与学习       248277    人
  • 解答问题       3071    个

Java Web入门级教程JSP,带你轻松的学习JSP基础知识

进入课程

detail页面问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信