您的位置:首页 > 其它

使用Cookie保存商品浏览记录

2016-07-01 10:13 381 查看
[align=left]数据流程:页面上是商品列表,点击<a href="productServlet">商品名</a>[/align]
[align=left]==》跳转到自定义的servlet中进行处理,先得到请求的参数id;[/align]
[align=left]==》获取所有cookies =requst.getCookies()方法。[/align]
[align=left]==》根据名称查找cookie是否存在 。通过循环cookies for(Cookie c:cookies) if(c.getName().eques("product")) 来确定cookie是否为null[/align]
[align=left]==》也就确定是否是第一次访问,如果是第一次访问,新建cookie对象 Cookie cookie=new Cookie("product",id); 回写cookie response.addCookie(cookie);[/align]
[align=left]==》如果存在,先判断是否包含请求的商品编号 if(不包含) cookie.setValue(productIds + "," + id); 回写cookie response.addCookie(cookie);[/align]
[align=left] [/align]
[align=left]<%@pageimport="utils.MyUtils"%>[/align]
[align=left]<%@ page language ="java" contentType="text/html; charset=UTF-8"[/align]
[align=left] pageEncoding="UTF-8"%>[/align]
[align=left]<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd" >[/align]
[align=left]<html>[/align]
[align=left]<head>[/align]
[align=left]<meta http-equiv= "Content-Type" content ="text/html; charset=UTF-8">[/align]
[align=left]<title> Insert title here</ title>[/align]
[align=left]<style type= "text/css">[/align]
[align=left] .imga{[/align]
[align=left] width:160px;[/align]
[align=left] height:140px;[/align]
[align=left] }[/align]
[align=left] .imgb{[/align]
[align=left] width:80px;[/align]
[align=left] height:70px;[/align]
[align=left] }[/align]
[align=left]</style>[/align]
[align=left]</head>[/align]
[align=left]<body>[/align]
[align=left]<img class="imga" src= "/JSP/img/1.jpg"><a href= "../product?id=1">手电筒 </a >[/align]
[align=left]<img class="imga" src= "/JSP/img/2.jpg"><a href= "../product?id=2">电话</a >[/align]
[align=left]<img class="imga" src= "/JSP/img/3.jpg"><a href= "../product?id=3">电视</a ><br />[/align]
[align=left]<img class="imga" src= "/JSP/img/4.jpg"><a href= "../product?id=4">冰箱</a >[/align]
[align=left]<img class="imga" src= "/JSP/img/5.jpg"><a href= "../product?id=5">手表</a >[/align]
[align=left]<img class="imga" src= "/JSP/img/6.jpg"><a href= "../product?id=6">笔记本电脑 </a >[/align]
[align=left]<hr>[/align]
[align=left]<h3> 浏览记录</h3 >[/align]
[align=left]<%[/align]
[align=left]//获取request.cookie[/align]
[align=left]Cookie[] cookies=request.getCookies();[/align]
[align=left]Cookie cookie=MyUtils.getCookieByName(cookies, "product");[/align]
[align=left]if(cookie!=null )[/align]
[align=left]{[/align]
[align=left] String values=cookie.getValue();[/align]
[align=left] String [] ids=values.split( ",");[/align]
[align=left] for(String id:ids)[/align]
[align=left] {[/align]
[align=left] %>[/align]
[align=left] <img class ="imgb" src="/JSP/img/<%= id %> .jpg"><br />[/align]
[align=left] <%[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left]}[/align]
[align=left] %>[/align]
[align=left]</body>[/align]
[align=left]</html>[/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]

[align=left]package Cookie_Servlet;[/align]
[align=left] [/align]
[align=left]import java.io.IOException;[/align]
[align=left] [/align]
[align=left]import javax.servlet.ServletException;[/align]
[align=left]import javax.servlet.http.Cookie;[/align]
[align=left]import javax.servlet.http.HttpServlet;[/align]
[align=left]import javax.servlet.http.HttpServletRequest;[/align]
[align=left]import javax.servlet.http.HttpServletResponse;[/align]
[align=left] [/align]
[align=left]import utils.MyUtils;[/align]
[align=left] [/align]
[align=left]/**[/align]
[align=left] * 浏览记录后台[/align]
[align=left] *[/align]
[align=left] * @author sunyb[/align]
[align=left] *[/align]
[align=left] */[/align]
[align=left]public class ProductServlet extends HttpServlet {[/align]
[align=left] [/align]
[align=left] public void doGet(HttpServletRequest request, HttpServletResponse response)[/align]
[align=left] throws ServletException, IOException {[/align]
[align=left] [/align]
[align=left] /**[/align]
[align=left] * 1.获取请求参数 2.获取cookie数组;通过指定名查找自己定义 的coockie 3. 如果cookie为null 则说明是[/align]
[align=left] * 第一次访问 4 .否则 不是第一次访问[/align]
[align=left] */[/align]
[align=left] [/align]
[align=left] // 获取请求参数 目的,存入到cookie 中[/align]
[align=left] String id = request.getParameter( "id");[/align]
[align=left] // 先获取所有的cookie,查找指定名称的cookies数组[/align]
[align=left] Cookie[] cookies = request.getCookies();[/align]
[align=left] // 查找指定名称的cookie[/align]
[align=left] Cookie cookie = MyUtils. getCookieByName(cookies, "product");[/align]
[align=left] // 如果cookie==null,我第 一次访问,创建cookie,回写[/align]
[align=left] if (cookie == null) {[/align]
[align=left] // 我是第一次访问,创建cookie,回写[/align]
[align=left] Cookie c = new Cookie( "product", id);[/align]
[align=left] // 回写[/align]
[align=left] response.addCookie(c);[/align]
[align=left] } else {[/align]
[align=left] // 如果不是第一次访问[/align]
[align=left] // 获取cookie的value值 ,可能会为 1,2,3[/align]
[align=left] String productIds = cookie.getValue();[/align]
[align=left] String[] values = productIds.split( ",");[/align]
[align=left] if (!checkId(values, id)) {[/align]
[align=left] cookie.setValue(productIds + "," + id);[/align]
[align=left] response.addCookie(cookie);[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] }[/align]
[align=left] // 重定向到商品页面[/align]
[align=left] response.sendRedirect( "/JSP/cookies/productList.jsp");[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] /**[/align]
[align=left] * 判断当前的 id是否存在到cookies中[/align]
[align=left] *[/align]
[align=left] * @param ids[/align]
[align=left] * cookies中存在的浏览过的商品id[/align]
[align=left] * @param value[/align]
[align=left] * 当前访问的商品id[/align]
[align=left] * @return 包含到原来的cookies中返回true,否则返回false[/align]
[align=left] */[/align]
[align=left] private boolean checkId(String[] ids, String value) {[/align]
[align=left] for (String tem : ids) {[/align]
[align=left] if (tem.equals(value))[/align]
[align=left] return true;[/align]
[align=left] }[/align]
[align=left] return false;[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] public void doPost(HttpServletRequest request, HttpServletResponse response)[/align]
[align=left] throws ServletException, IOException {[/align]
[align=left] [/align]
[align=left] doGet(request, response);[/align]
[align=left] [/align]
[align=left] }[/align]
[align=left] [/align]

[align=left]}[/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: