java教程

java cookie记录商品浏览记录并排序

位置:首页 > java教程 > java技巧,2018-02-28 18:13
今天开发商城用到了java cookie记录商品浏览记录并排序的例子,有需要的朋友可以参考一下。cookie中只用记录商品ID就可以了

下面是java cookie记录商品浏览记录并排序的一个工具类

Cookietool.java

package www.ablanxue.com;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.lang3.StringUtils;
import org.apache.struts2.ServletActionContext;
public class Cookietool {
	//tarid商品id,num要记录的浏览个数,如记录最近的10浏览商品,则num是10;
	public void savecookie(String tarid,int num) {
		HttpServletResponse response = ServletActionContext.getResponse();
		Cookie cookie;
		String  ar=gethistroy();
		if(null==ar){
			cookie = new Cookie("ablanxue",tarid);
		}
		else{

			String ncookie=strcookie(tarid,gethistroy(),num);
			cookie = new Cookie("ablanxue",ncookie);
		}
		cookie.setMaxAge(12 * 60 * 60);
		cookie.setPath("/");
		response.addCookie(cookie);
	}

	
	public String strcookie(String tarid,String cookiestr,int num) {
		if(null==cookiestr||"".equals(cookiestr)){
			return tarid;
		}

		List<String> productids = java.util.Arrays.asList(cookiestr.split(","));
		   List<String> productidstem = new ArrayList<String>();
		   int at=0;
		   int size=productids.size();if(size>num-1)size=num-1;
		   String attem;
		   for(at=0;at<size;at++)
		 {
			   attem=productids.get(at);
		if(!attem.equals(tarid)){
		   productidstem.add(attem);
		   }
		
		   }
		   String tarlist=StringUtils.join(productidstem, ",");
	if(!"".equals(tarlist)){
		return tarid+","+tarlist;
	}
	else{
		return tarid;
	}
	}
	public String gethistroy() {
		String ma = null;
		HttpServletRequest request = ServletActionContext.getRequest();
		Cookie[] c = request.getCookies();
		if (c != null && c.length > 0) {
			for (Cookie cd : c) {
				if (cd.getName().equals("tysygs")) {
					String y = cd.getValue();
					if (null != y) {
						ma = y;
						break;
					}
				}
			}
		}

		return ma;
	}
	
}


//使用时如下:
Cookietool c=new Cookietool();
String hi=c.gethistroy();//读取到的id记录,格式为1,2,3,4
根据这个记录查询数据库
sql="select * from product where id in("+hi+")";

//保存记录
c.savecookie(id.toString(),10);
以上就是 java cookie记录商品浏览记录并排序的一个工具类及使用方法。希望对大家的帮助。

TAGS:java cookiejava cookie商品浏览记录

猜你喜欢

NewHot