第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

關(guān)于瀏覽記錄重復(fù)的問題怎么解決,

在出現(xiàn)的瀏覽記錄中會(huì)出現(xiàn)相同的商品,這個(gè)怎么做到不出現(xiàn)相同的商品呢?


老師的代碼是不是不完善?


或者每次刷新details.jsp頁面都會(huì)在瀏覽記錄出現(xiàn)相同的商品

正在回答

6 回答

//邏輯處理最好放在itemsDao類里

???public?ArrayList<Items>?getViewList(String?list){
???????ArrayList<Items>?itemList?=?new?ArrayList<Items>();
???????ArrayList<Integer>?ls?=?new?ArrayList<Integer>();
???????String[]?arr?=?list.split(",");
???????int?iCount=5;
???????if(list!=null&&list.length()>0){
??????????//去重,并且按最新瀏覽順序輸出
??????????for(int?i=arr.length-1;i>=0;i--){
????????????if(ls!=null&&!ls.isEmpty()){
???????????????if(ls.contains(Integer.parseInt(arr[i]))){
??????????????????continue;
???????????????}else{
??????????????????ls.add(Integer.parseInt(arr[i]));
???????????????}
????????????}else{
??????????????ls.add(Integer.parseInt(arr[i]));
????????????}
??????????}
??????????if(ls.size()<=iCount){
?????????????for(Integer?i:ls){
????????????????itemList.add(getItemById(i));
?????????????}
??????????}else{
?????????????for(int?i=0;i<iCount;i++){
????????????????itemList.add(getItemById(ls.get(i)));
?????????????}
??????????}
??????????return?itemList;
???????}else{
??????????return?null;
??????????}
???}


0 回復(fù) 有任何疑惑可以回復(fù)我~

有一個(gè)判斷方式很簡(jiǎn)單:

? ? ? ? ? ? ? Cookie[]?cookies?=?request.getCookies();

??????????????if(cookies!=null&&cookies.length>0)

??????????????{

??????????????????for(Cookie?c:cookies)

??????????????????{

??????????????????????if(c.getName().equals("ListViewCookie"))

??????????????????????{

?????????????????????????list?=?c.getValue();

??????????????????????}

??????????????????}

??????????????}

? ? ? ? ? ? ? //這里已經(jīng)得到需要的字符串在list里面了;

? ? ? ? ? ? id=request.getParameter("id");

? ? ? ? ? // 得到需要添加的字符串id

? ? ? ? ? if(list.startsWith(id+",")){

? ? ? ? ? int length = id.length+1;

? ? ? ? ?list.remove(0,length);

? ? ? ? ? }

? ? ? ? ?if(list.contains(","+id+","){

? ? ? ? ?list.replace( ? ?","+id+"," ? , ? ? "," ? ?) ;

? ? ? ? ?}

直接得到重復(fù)的id刪除后的字符串,然后再就判斷是否超過多少條,將id添加。


? ? ? ? ? ? ??


0 回復(fù) 有任何疑惑可以回復(fù)我~
??????????????String?list?="";
??????????????String?id?="";
??????????????//從客戶端獲得Cookies集合
??????????????Cookie[]?cookies?=?request.getCookies();
??????????????//遍歷這個(gè)Cookies集合
??????????????if(cookies!=null&&cookies.length>0)
??????????????{
	??????????????for(Cookie?c:cookies)
	??????????????{
	??????????????????if(c.getName().equals("ListViewCookie"))
	??????????????????{
	?????????????????????list?=?c.getValue();
	??????????????????}
	??????????????}
	??????????}
??????????????id=request.getParameter("id");//當(dāng)前點(diǎn)擊的商品ID
??????????????String[]?arr?=?list.split(",");//將cookie中的list按','分割成數(shù)組
??????????????System.out.println("arr.length="+arr.length);
??????????????//如果瀏覽記錄達(dá)到10條,清零.
?????????????
??????????????if(arr!=null&&arr.length>0)
??????????????{
??????????????????if(arr.length>=10)//瀏覽記錄達(dá)到10條,cookie清零
??????????????????{
??????????????????????list="";
??????????????????????list+=id+",";
??????????????????}else{
??????????????????int?i=0;
??????????????????/**
??????????????????*?while循環(huán)遍歷arr,如果當(dāng)前id跟arr中的某個(gè)id相同,則將當(dāng)前id后的所有id向前移動(dòng)一位,
??????????????????*?并將當(dāng)前id置于arr數(shù)組末尾(最新的瀏覽記錄總在最后面)
??????????????????*?例如:當(dāng)前l(fā)ist為?1,3,8,6,7,5,如果當(dāng)前id是3,則經(jīng)過處理后新的list為:1,8,6,7,5,3,
??????????????????**/
??????????????????while(i<arr.length){
????????????????	?
????????????????	?if(id.equals(arr[i])){
????????????????		?for(int?j=i;j<arr.length-1;j++){
????????????????			?arr[j]=arr[j+1];//從當(dāng)前id位置起,將后面的id向前移動(dòng)一位
????????????????			?
????????????????		?}
????????????????		?arr[arr.length-1]=id;//將當(dāng)前id置于arr數(shù)組末端
????????????????		?
????????????????		?//將arr數(shù)組重新組合成list字符串
????????????????		?StringBuffer?sb=?new?StringBuffer();
????????????????		?for(int?k=0;k<arr.length;k++){
????????????????			?sb.append(arr[k]);
????????????????			?sb.append(",");
????????????????		?}
????????????????		?list=sb.toString();//新的list字符串,當(dāng)前id在最末尾
????????????????		?break;//當(dāng)前id已經(jīng)存在于list中,上面已經(jīng)將list重新排序,此處跳出循環(huán)
????????????????	?}
????????????????	?i++;//i自增
????????????????	?
????????????????	?/**
??????????????????????*?當(dāng)i==arr.length,說明循環(huán)結(jié)束了,
??????????????????????*?并且一直沒有通過break跳出循環(huán),說明list中不存在當(dāng)前id
??????????????????????*?直接將當(dāng)前id加到list末尾
??????????????????????**/
????????????????	?if(i==arr.length){
????????????????		?list+=id+",";//直接將當(dāng)前id加到list末尾
????????????????	?}
?????????????????}
??????????????????}
??????????????????
??????????????}
????????????//重新生成cookie并添加
??????????????Cookie?cookie?=?new?Cookie("ListViewCookie",list);
??????????????response.addCookie(cookie);


0 回復(fù) 有任何疑惑可以回復(fù)我~

//判斷商品是否瀏覽過,只判斷倒數(shù)五條中是否存在,瀏覽過則不再重復(fù)記錄

String[] list = browsingList.split(",");

boolean exist = false;

int icount = 5;

if(list!=null&&list.length>5){

for (int j=list.length-1;j>=list.length-icount;j--) {

if (list[j].equals(request.getParameter("id"))) {

exist = true;

}

}

}else{

for(String id:list){

if (id.equals(request.getParameter("id"))) {

exist = true;

}

}

}

if (!exist) {

browsingList += request.getParameter("id") + ",";

}

String[] arr = browsingList.split(",");

if (arr != null && arr.length > 0) {

if (arr.length >= 1000) {

browsingList = "";

}

}

Cookie cookie = new Cookie("browsingList", browsingList);

response.addCookie(cookie);


0 回復(fù) 有任何疑惑可以回復(fù)我~

假設(shè)商品的id不會(huì)出現(xiàn)包含關(guān)系的話,例如沒有id:2和id:12這樣的則可以用字符串函數(shù)indexOf(),來判斷這個(gè)字符串中是否包含這個(gè)子串。

比較麻煩的方式就是:

將這個(gè)字符串以","分隔后成為一個(gè)數(shù)組,用每個(gè)添加的id和這個(gè)數(shù)組的元素遍歷比較,如果不相同則添加到字符串中。

0 回復(fù) 有任何疑惑可以回復(fù)我~

把記錄從cookie出來后比對(duì)一下,如果新的待添加的記錄在cookie中有了,就不添加到cookie中,沒有則添加到cookie中

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

連宏偉HW 提問者

有沒有具體實(shí)現(xiàn)的代碼,
2016-07-16 回復(fù) 有任何疑惑可以回復(fù)我~
#2

宗晟

回復(fù) 連宏偉HW代碼有點(diǎn)亂,你看下,邏輯是跟上面那位仁兄一樣
2016-08-03 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

關(guān)于瀏覽記錄重復(fù)的問題怎么解決,

我要回答 關(guān)注問題
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)