本文参考传智播客巴巴运动网视频教程
1.对最近浏览商品的实现需要用到cookie,一下代码可以获取cookie:
/**
* 获取cookie的值
* @param request
* @param name cookie的名称
* @return
*/
public static String getCookieByName(HttpServletRequest request, String name) {
Map<String, Cookie> cookieMap = WebUtil.readCookieMap(request);
if(cookieMap.containsKey(name)){
Cookie cookie = (Cookie)cookieMap.get(name);
return cookie.getValue();
}else{
return null;
}
}
protected static Map<String, Cookie> readCookieMap(HttpServletRequest request) {
Map<String, Cookie> cookieMap = new HashMap<String, Cookie>();
Cookie[] cookies = request.getCookies();
if (null != cookies) {
for (int i = 0; i < cookies.length; i++) {
cookieMap.put(cookies[i].getName(), cookies[i]);
}
}
return cookieMap;
}
readCookieMap先获取request里面的所有cookie,然后以键值对的形式存放到一个Map中。在getCookieByName方法中,先调用
readCookieMap方法来获取所有的cookie,然后在查询自己想要查找的那个cookie的值。
2.完成了获取cookie值之后,我们就可以对cookie里面的浏览记录进行修改排序:
public String buildViewHistory(HttpServletRequest request, Integer currentProductId){
//23-2-6-5
//1.如果当前浏览的id已经在浏览历史里了,我们要把移到最前面
//2.如果浏览历史里已经达到了10个产品了,我们需要把最选进入的元素删除
String cookieValue = WebUtil.getCookieByName(request, "productViewHistory");
LinkedList<Integer> productids = new LinkedList<Integer>();
if(cookieValue!=null && !"".equals(cookieValue.trim())){
String[] ids = cookieValue.split("-");
for(String id : ids){
productids.offer(new Integer(id.trim()));
}
if(productids.contains(currentProductId)) productids.remove(currentProductId);
if(productids.size()>=10) productids.poll();
}
productids.offer(currentProductId);
StringBuffer out = new StringBuffer();
for(Integer id : productids){
out.append(id).append('-');
}
out.deleteCharAt(out.length()-1);
return out.toString();
}
为了方便排序 cookie的值是:用户浏览过的商品的id加横杠分隔符结合而成的。如:23-2-6-5。
3.排序结束后我们又可以将新的cookie存入浏览器中:
/**
* 添加cookie
* @param response
* @param name cookie的名称
* @param value cookie的值
* @param maxAge cookie存放的时间(以秒为单位,假如存放三天,即3*24*60*60; 如果值为0,cookie将随浏览器关闭而清除)
*/
public static void addCookie(HttpServletResponse response, String name, String value, int maxAge) {
Cookie cookie = new Cookie(name, value);
cookie.setPath("/");
if (maxAge>0) cookie.setMaxAge(maxAge);
response.addCookie(cookie);
}
该方法的调用如下:
WebUtil.addCookie(response, "productViewHistory",
buildViewHistory(request, formbean.getProductid()), 30*24*60*60);
这样就完成了将用户最近浏览过的产品以cookie的形式存入浏览器。
分享到:
相关推荐
巴巴运动网商品交易系统详细设计说明书 可作为毕业设计开题报告用
巴巴运动网商品交易系统是一套面向大型企业开发的商品交易系统,具备先进的电子商务运营及管理理念。订单流转实现多部门协同处理,满足大型企业多部门协作处理业务的需求。系统包含以下模块: 产品管理:产品具有...
巴巴运动网 基于分布式构架的大型商品交易平台,系统围绕一个业务中心的思想,实现了多种类型的客户端应用,如:基于浏览器的web交易系统,基于手机的wap交易系统,用于内部办公的OA系统,像这些系统都使用了同一个...
巴巴运动网源码和jar文件,完整的源码和用到的jar文件。工程配置后可直接运行。。。
更重要的是巴巴运动网是真正的商业化产品(售价12万元),它溶合了作者多年积累的商务网站运营及软件构架经验,是目前为数不多的集网站运营、业务处理及技术于一身的商品交易系统。是网上流传的商城系统无法比拟的。
巴巴运动网源码 emmmmm 最低2分了 emmmmmmm 啧啧啧啧啧啧
2016年版新巴巴运动网项目12天完整视频教程以及源码,
传智巴巴运动网源代码 传智巴巴运动网源代码 传智巴巴运动网源代码 传智巴巴运动网源代码 传智巴巴运动网源代码 传智巴巴运动网源代码
本资源包括传智播客的巴巴运动网源码,Java代码
巴巴运动网项目jar包完整版 巴巴运动网项目jar包完整版
巴巴运动网 源码下载,很好的资源,欢迎大家免费下载学习。
巴巴运动网 部分 前端代码 没用图片 嵌进去即可用了
巴巴运动网完整源代码压缩包,即巴巴运动网106集和后续视频的所有代码!
巴巴运动网 jar包,很好的资源,欢迎大家免费下载学习。
巴巴运动网新版前6天代码 巴巴运动网新版前6天代码
黎活明老师巴巴运动网velocity_ppt文档
这是一个非常强大的分布式系统; 是现在最网上能找到的最好的一个系统 这个系统是用JAVA写的
巴巴运动网完整源代码
传智播客项目巴巴网文档 新巴巴运动网总结笔记 day01