码迷,mamicode.com
首页 > 编程语言 > 详细

java cookie记录最近浏览商品记录(取最新的五个浏览记录)

时间:2016-04-25 22:52:31      阅读:347      评论:0      收藏:0      [点我收藏+]

标签:cookie   java   浏览商品记录   jsp   servle   

//商品浏览详细信息记录商品id,存到cookie中
package com.kt.servlet_qt;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

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

import com.kt.bean.Easybuy_Shangpin;
import com.kt.bean.Easybuy_ShangpinFenlei;
import com.kt.dao.impl.Easybuyimpl;

public class merchandisetype extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		PrintWriter out = response.getWriter();
		String uid = request.getParameter("uid");
		String uname = request.getParameter("uname");

		Easybuyimpl e = new Easybuyimpl();
		Easybuy_Shangpin all_ID_Shangpin = e.all_ID_Shangpin(Integer
				.parseInt(uid));
		// 拿到商品id
		int id = all_ID_Shangpin.getEp_id();
		// 保存商品id
		Cookie cookie1 = null;
		// 初始创建cookie
		cookie1 = new Cookie("cookis_id", "");
		cookie1.setValue(id + ",");
		// 多少秒过期
		cookie1.setMaxAge(7 * 24 * 60 * 60);
		// 添加到客户端
		response.addCookie(cookie1);
		// 先获取cookie是否有值
		Cookie[] ck = request.getCookies();
		// 进行判断
		if (ck != null) {
			// 定义累加值的变量为空
			String value = "";
			// 循环cookie拿值
			for (Cookie cookie : ck) {
				// 判断是否存在cookis_id名称
				if (cookie.getName().equals("cookis_id")) {
					// 拿到cookie最新值
					value = cookie.getValue();
					// 将cookie分割以(",")分割
					String[] split = value.split(",");
					// 创建set集合,("因为set能自动识别重复值")
					Set<String> set = new HashSet<String>();
					// 将拿到的值循环放到set中进行判断是否存在相同的数
					for (int i = 0; i < split.length; i++) {
						set.add(split[split.length - (i + 1)]);
					}
					// 清空所定义的值,进行下一轮拼接
					value = "";
					// 创建一个数组
					String[] array = new String[] {};
					// 将set集合的值转换到数组中
					String[] toArray = (String[]) set.toArray(array);
					// 这里进行你要判断你要显示多少条最新记录
					if (toArray.length < 4) {
						// 创建集合
						List<String> list = new ArrayList<String>();
						// 循环toArray数组将值添加到list集合中
						for (int i = 0; i < toArray.length; i++) {
							list.add(toArray[i]);
						}
						// 循环判断拿到的值是否有相同的如果有就移除
						for (int i = 0; i < list.size(); i++) {
							if (Integer.parseInt(list.get(i)) == id) {
								list.remove(i);
							}
						}
						// 最后进行拿到list集合的数据进行拼接
						for (String string : list) {
							value += string + ",";
						}
						// 然后添加最新的数据到cookie中
						cookie1 = new Cookie("cookis_id", value + id + ",");
					} else {// 如果大于你要显示的数据条数
						// 创建集合
						List<String> list = new ArrayList<String>();
						// 循环toArray数组将值添加到list集合中
						for (int i = 0; i < toArray.length; i++) {
							list.add(toArray[toArray.length - (i + 1)]);
						}
						// 定义一个接收被移除的
						String li = list.get(0);
						// 移除
						list.remove(0);
						// 循环判断是否有相同的、和进行value拼接最新的数据
						for (String string : list) {
							if (Integer.parseInt(string) == id) {
								string = li;
							}
							if (Integer.parseInt(string) != id) {
								value += string + ",";
							}
						}
						// 添加最新数据cookis_id
						cookie1 = new Cookie("cookis_id", value + id + ",");
					}
					// 多少秒过期
					cookie1.setMaxAge(7 * 24 * 60 * 60);
					// 添加到客户端
					response.addCookie(cookie1);
				}
			}
		}
		// // 商品分类查询所有
		List<Easybuy_ShangpinFenlei> all_ShangpinFenlei = e
				.all_ShangpinFenlei();
		request.getSession().setAttribute("all_ShangpinFenlei",
				all_ShangpinFenlei);
		request.getSession().setAttribute("uname", uname);
		request.getSession().setAttribute("all_ID_Shangpin", all_ID_Shangpin);
		request.getRequestDispatcher("product-view.jsp").forward(request,
				response);
		out.flush();
		out.close();
	}

}
//获取cookie拿到值,传给jsp界面
package com.kt.servlet_qt;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

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

import com.kt.bean.Easybuy_Shangpin;
import com.kt.bean.Easybuy_ShangpinFenlei;
import com.kt.bean.Easybuy_xinwen;
import com.kt.dao.impl.Easybuyimpl;

public class blank extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		PrintWriter out = response.getWriter();
		// 获取cookie所存放的值
		Cookie[] cookies = request.getCookies();
		if (cookies != null) {// 判断cookie是否为空
			// 创建集合
			ArrayList<Easybuy_Shangpin> all_cookle_Shangpin = new ArrayList<Easybuy_Shangpin>();
			// 定义一个用分解cookie的变量
			String value = "";
			// 循环cookie判断是否存在cookis_id
			for (Cookie cookie : cookies) {
				if (cookie.getName().equals("cookis_id")) {
					// 接收cookie的值
					value = cookie.getValue();
					// 然后以(",")分解拿到数据ID
					String[] split = value.split(",");
					// 循环添加到 all_cookle_Shangpin集合中将最新数据传递给jsp页面
					for (int i = 0; i < split.length; i++) {
						all_cookle_Shangpin.add(e
								.all_cookle_Shangpin(
										Integer.parseInt(split[split.length
												- (i + 1)])).get(0));// split[split.length-
																		// (i +
																		// 1)]指的是从最新的开始拿数据
					}
					// 存到会话中
					request.getSession().setAttribute("all_cookle_Shangpin",
							all_cookle_Shangpin);
				}
			}
		}
		// 使用转发
		request.getRequestDispatcher("index.jsp").forward(request, response);
		out.flush();
		out.close();
	}
}

技术分享

技术分享

技术分享


java cookie记录最近浏览商品记录(取最新的五个浏览记录)

标签:cookie   java   浏览商品记录   jsp   servle   

原文地址:http://flyblog.blog.51cto.com/10081495/1767674

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!