`

用Cookie实现的购物车

    博客分类:
  • JSP
阅读更多
Cusorderitem.java 封装了相关的商品购买信息
package com.yahaitt.model;
import java.io.Serializable;    
import com.yahaitt.util.PageProperty;    
/**   
 * Cusorderitem generated by jwgen   
 *   
 * @author mahaibo   
 * 2007-08-26 17:27:41   
 */   
public class Cusorderitem extends PageProperty implements Serializable    
{    
    private Integer id;    
    private Integer quantity;    
    private Float unitprice;    
    private String color;    
    private String chic;    
    private Cusorder cusorder;    
    private Product product;    
/*-----------------default construct-----------*/   
    public Cusorderitem()    
    {    
    }    
/*-----------------sample construct--------------*/     
  public Cusorderitem(    
  Integer id    
  )    
  {    
        this.id = id;    
  }    
/*-----------------full construct--------------*/      
    public Cusorderitem(    
  Integer id,    
  Cusorder cusorder,    
  Product product    
  )    
  {    
          this.id = id;    
          this.cusorder = cusorder;    
          this.product = product;    
  }    
      
    public Integer getId()    
    {    
            return id;    
    }    
    public void setId(Integer id)    
    {    
            this.id = id;    
    }    
    public Integer getQuantity()    
    {    
            return quantity;    
    }    
    public void setQuantity(Integer quantity)    
    {    
            this.quantity = quantity;    
    }    
    public Float getUnitprice()    
    {    
            return unitprice;    
    }    
    public void setUnitprice(Float unitprice)    
    {    
            this.unitprice = unitprice;    
    }    
    public Cusorder getCusorder()    
    {    
            return cusorder;    
    }    
    public void setCusorder(Cusorder cusorder)    
    {    
            this.cusorder = cusorder;    
    }    
    public Product getProduct()    
    {    
            return product;    
    }    
    public void setProduct(Product product)    
    {    
            this.product = product;    
    }    
    public String getChic() {    
        return chic;    
    }    
    public void setChic(String chic) {    
        this.chic = chic;    
    }    
    public String getColor() {    
        return color;    
    }    
    public void setColor(String color) {    
        this.color = color;    
    }     
}    

SessionUser.java 验证用户是否登录,只有合法用户才能拥有购物车
package com.yahaitt.web;    
import java.util.Set;    
import javax.servlet.http.HttpServletRequest;    
import org.springframework.web.util.WebUtils;    
import com.yahaitt.model.User;    
import com.yahaitt.service.UserManager;    
import com.yahaitt.util.CookieUtil;    
public class SessionUser {    
    private String id;    
    private String name;    
    private String loginname;    
    private Integer status;    
    private Set resPermissions;    
    private String tel;    
    private String addr;    
    private Integer zip;    
//  public SessionUser(String id, String name) {    
//      this.id = id;    
//      this.name = name;    
//  }    
//  public SessionUser(String id,String loginname,Integer status)    
//  {    
//      this.id = id;    
//      this.loginname = loginname;    
//      this.status = status;    
//  }    
    public SessionUser(Integer id,String loginname,String name,String tel, String addr,Integer zip,Integer status)    
    {    
        this.id = id.toString();    
        this.loginname = loginname;    
        this.name = name;    
        this.tel = tel;    
        this.addr = addr;    
        this.zip = zip;    
        this.status = status;    
    }    
    public String getName() {    
        return name;    
    }    
    public void setName(String name) {    
        this.name = name;    
    }    
    public String getTel() {    
        return tel;    
    }    
    public void setTel(String tel) {    
        this.tel = tel;    
    }    
    public String getAddr() {    
        return addr;    
    }    
    public void setAddr(String addr) {    
        this.addr = addr;    
    }    
    public Integer getZip() {    
        return zip;    
    }    
    public void setZip(Integer zip) {    
        this.zip = zip;    
    }    
   
    public String getLoginname() {    
        return loginname;    
    }    
    public void setLoginname(String loginname) {    
        this.loginname = loginname;    
    }    
    public Integer getStatus() {    
        return status;    
    }    
    public void setStatus(Integer status) {    
        this.status = status;    
    }    
    public String getId() {    
        return id;    
    }    
    public void setId(String id) {    
        this.id = id;    
    }    
    /**   
     * 从request获取SessionUser   
     */   
    public static SessionUser getFromRequest(HttpServletRequest request,UserManager userManager) {    
        SessionUser su = (SessionUser)WebUtils.getSessionAttribute(request, "sessionUser");    
        if(su == null){    
            CookieUtil.getCookie(request,userManager);    
            su = (SessionUser)WebUtils.getSessionAttribute(request, "sessionUser");    
        }    
        return su;    
    }    
    public static SessionUser getFromRequest(HttpServletRequest request) {    
        SessionUser su = (SessionUser)WebUtils.getSessionAttribute(request, "sessionUser");    
   
        return su;    
    }    
    /**   
     * 从request获取SessionUser的id   
     */   
    public static String getId(HttpServletRequest request) {    
        SessionUser user = getFromRequest(request);    
        if (user != null) {    
            return user.getId();    
        }     
        return null;    
    }    
    /**   
     * 从request获取SessionUser的name   
     */   
    public static String getName(HttpServletRequest request) {    
        SessionUser user = getFromRequest(request);    
        if (user != null) {    
            return user.getName();    
        }     
        return null;    
    }    
    /**   
     * 从request获取SessionUser的loginname   
     */   
    public static String getLoginname(HttpServletRequest request,UserManager userManager) {    
        SessionUser user = getFromRequest(request,userManager);    
        if (user != null) {    
            return user.getLoginname();    
        }    
        return null;    
    }    
    public static String getLoginname(HttpServletRequest request) {    
        SessionUser user = getFromRequest(request);    
        if (user != null) {    
            return user.getLoginname();    
        }       
        return null;    
    }    
    public Set getPermissionStrings()    
    {    
        return resPermissions;    
    }    
    /**   
     * 把用户信息放到session里   
     * @param request   
     * @param user   
     */   
    public static void saveSession(HttpServletRequest request,User user)    
    {    
        String usertel = user.getTel();    
        String usermobile = user.getMobile();    
        String usertels = "";    
        if(null!=usertel && !"".equals(usertel) && null!=usermobile && !"".equals(usermobile))    
        {    
            usertels = usertel + "/" + usermobile;    
        }    
        else if(null!=usertel && !"".equals(usertel))    
        {    
            usertels = usertel;    
        }    
        else if(null!=usermobile && !"".equals(usermobile))    
        {    
            usertels = usermobile;    
        }    
        SessionUser su = new SessionUser(user.getId(), user.getLoginname(),user.getName(),usertels,user.getAddr(),user.getZip(),user.getStatus());    
        WebUtils.setSessionAttribute(request, "sessionUser", su);    
    }    
        
    public static void removeSession(HttpServletRequest request)    
    {    
        WebUtils.setSessionAttribute(request, "sessionUser", null);    
    }         
} 
 

CookieUtil.java 对购物车中的商品信息进行操作时的应用
package com.yahaitt.util;    
   
import java.net.URLDecoder;    
import java.net.URLEncoder;    
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.springframework.web.util.WebUtils;    
import com.yahaitt.model.Cusorderitem;    
import com.yahaitt.model.User;    
import com.yahaitt.service.ProductManager;    
import com.yahaitt.service.UserManager;    
import com.yahaitt.web.SessionUser;    

public class CookieUtil {    
        
    /**   
     * 在客户端保存Cookie   
     * @param response   
     * @param user   
     */   
    public static void saveCookie(HttpServletResponse response,User user)    
    {    
        Cookie userCookie = new Cookie(ContextConfigure.USER_COOKIE_NAME,URLEncoder.encode(user.getLoginname()));    
        userCookie.setMaxAge( 60 * 60 * 24 * 30 );    
    //    userCookie.setDomain( ContextConfigure.WSAY_DOMAIN );    
        userCookie.setPath("/");    
        Cookie passwordCookie = new Cookie(ContextConfigure.USER_COOKIE_PASSWORD,URLEncoder.encode(user.getPassword()) );    
        passwordCookie.setMaxAge( 60 * 60 * 24 * 30 );    
     //   passwordCookie.setDomain( ContextConfigure.WSAY_DOMAIN );    
        passwordCookie.setPath("/");    
        response.addCookie( userCookie );//userCookie中包含中文时怎么会出错误呢?    
        response.addCookie( passwordCookie );    
    }    
    /**   
     * 从客户端移除Cookie   
     * @param response   
     */   
    public  static void removeCookie(HttpServletResponse response)    
    {    
        Cookie userCookie = new Cookie(ContextConfigure.USER_COOKIE_NAME,"");    
        //userCookie.setDomain( ContextConfigure.WSAY_DOMAIN );    
        userCookie.setMaxAge(0);    
        userCookie.setPath("/");    
        Cookie passwordCookie = new Cookie(ContextConfigure.USER_COOKIE_PASSWORD,"" );    
        passwordCookie.setMaxAge( 0 );    
     //   passwordCookie.setDomain( ContextConfigure.WSAY_DOMAIN );    
        passwordCookie.setPath("/");    
        response.addCookie( userCookie );    
        response.addCookie( passwordCookie );    
    }    
        
    /**   
     * 从客户端获得Cookie   
     * @param request   
     * @param userManager   
     */   
    public  static void getCookie(HttpServletRequest request,UserManager userManager)    
    {    
         Cookie name = WebUtils.getCookie(request, ContextConfigure.USER_COOKIE_NAME);    
         Cookie password = WebUtils.getCookie(request, ContextConfigure.USER_COOKIE_PASSWORD);    
         String now = SecurityBase.getNow();    
         if (name != null && password != null) {    
             User user = userManager.checkPassword(URLDecoder.decode(name.getValue()), URLDecoder.decode(password.getValue()));    
            if(user != null)    
            {    
                SessionUser.saveSession(request,user);    
                    
                //user.setLastLogin(user.getCurrentLogin());    
                user.setLastlogin(now);    
                user.setCurrentlogin(now);    
                userManager.update(user);    
            }    
            else   
            {    
                SessionUser.removeSession(request);    
            }    
         }    
    }    
        
    /**   
     * 在购物车中添加商品,购物车存于Cookie   
     * @param request   
     * @param response   
     * @param cusorderitem   
     */   
    public static void saveToCar(HttpServletRequest request,HttpServletResponse response,Cusorderitem cusorderitem)    
    {    
        //cookie与用户登录名关联,可以根据不同的用户设置不同的购物车(方便不同用户在同台机器使用时的情况)    
        String loginname = SessionUser.getLoginname(request);    
        if(null==loginname || "".equals(loginname.trim()) )    
        {    
            return;    
        }    
        String[] products = null;    
        String[] counts = null;    
        String[] colors = null;    
        String[] chics = null;    
        Cookie[] aa = request.getCookies();    
        if(null==aa)    
        {    
            aa = new Cookie[0];    
        }    
        for(int i=0;i 
        {    
            Cookie cook = aa[i];    
            if((loginname+"_products").equals(cook.getName()))    
            {    
                products = cook.getValue().split("\\|");    
            }    
            else if((loginname+"_counts").equals(cook.getName()))    
            {    
                counts = cook.getValue().split("\\|");    
            }    
            else if((loginname+"_colors").equals(cook.getName()))    
            {    
                colors = cook.getValue().split("\\|");    
            }    
            else if((loginname+"_chics").equals(cook.getName()))    
            {    
                chics = cook.getValue().split("\\|");    
            }               
        }    
        if(null!=cusorderitem)    
        {    
            String product = cusorderitem.getProduct().getId().toString();    
            //对color元素进行编码    
            String color = URLEncoder.encode(cusorderitem.getColor());    
            String chic = cusorderitem.getChic();    
            int count = cusorderitem.getQuantity().intValue();    
            String countstr = new Integer(count).toString();    
            boolean flag = true;    
                
            if(null!=products)    
            {    
                for(int i=0;i 
                {    
                    if(product.equals(products[i]) && color.equals(colors[i]) && chic.equals(chics[i]))  
 
     
分享到:
评论
1 楼 hanyuhaha 2009-10-26  
color = URLEncoder.encode(cusorderitem.getColor());      
            String chic = cusorderitem.getChic();      
            int count = cusorderitem.getQuantity().intValue();      
            String countstr = new Integer(count).toString();      
            boolean flag = true;      
                  
            if(null!=products)      
            {      
                for(int i=0;i   
                {       

相关推荐

    cookie实现的购物车

    总的来说,Cookie在实现购物车功能时提供了一种简单且实用的方法,但同时也存在一些限制和潜在的安全风险。开发者在实际应用中应根据需求和场景选择合适的技术来实现购物车功能,同时注意用户隐私保护。

    用cookie实现购物车效果.rar

    然而,对于学习和小型项目,使用Cookie实现购物车功能是一个实用且易于理解的方法。 总结来说,利用Cookie实现购物车效果的关键在于正确地读取、修改和设置Cookie值,以及在客户端处理商品的添加、删除和显示。通过...

    cookie实现购物车

    ### 使用Cookie实现购物车功能详解 #### 一、引言 在现代Web应用开发中,购物车是一个不可或缺的功能。为了使用户能够在不登录的情况下也能享受到添加商品至购物车的便捷,许多开发者选择使用Cookie来存储用户的...

    Cookie实现购物车功能类(接前一个资源)

    下面我们将详细探讨这个`MyCart`类以及如何利用Cookie来实现购物车功能。 1. **类结构与属性**: `MyCart`类有两个私有字段:`_goodsId`和`_buyCount`,分别对应商品ID和购买数量。这两个字段通过公共的getter和...

    asp.net购物车(cookie、session两种实现方式)

    1. **Cookie实现** Cookie是一种在客户端存储数据的技术,ASP.NET购物车使用Cookie时,通常会为每个商品创建一个唯一的标识,并在用户浏览商品时将这些标识存储在Cookie中。当用户添加商品到购物车时,服务器会返回...

    购物车\用Cookie实现的购物车

    购物车\用Cookie实现的购物车\用Cookie实现的购物车购物车购物车\用Cookie实现的购物车

    利用Cookie实现购物车.rar

    总结来说,利用Cookie实现购物车功能是一个实用且常见的技术实践。通过创建、读取、更新和删除Cookie,我们可以轻松地在客户端存储和管理购物车信息,为用户提供便捷的在线购物体验。同时,也要注意在实现过程中对...

    PHP+COOKIE实现购物车类[强烈推荐]

    在这个"PHP+COOKIE实现购物车类"的案例中,我们将探讨如何使用PHP和Cookie技术来创建一个简单而实用的购物车类。Cookie是一种在客户端存储数据的方法,对于实现购物车功能特别有用,因为它可以在用户浏览网站时持久...

    php 运用cookie实现购物车添加 以及删除

    购物车添加商品 以及删除商品 把添加的数据放在一个数组了 方便提取

    asp.net Cookie的应用于购物车

    总结,ASP.NET中的Cookie在购物车应用中起到了关键作用,它帮助我们实现跨页面的数据持久化,而GridView则提供了一个直观的方式来展示和管理购物车中的商品。理解并熟练掌握这两者,对于开发功能丰富的Web应用程序至...

    js+cookie购物车

    JavaScript 和 Cookie 在实现购物车功能中的应用是一种常见的技术组合,特别是在单页面应用程序(SPA)或者没有后台数据库支持的简单电商网站中。以下是对这个主题的详细讲解。 **购物车功能概述** 购物车是电商...

    购物车cookie的实现

    使用目前大部分购物网站都是用的cookie技术,实现了购物车从cookie中的详细实现,此购物车的最主要的功能是,用户每次在本地登录时会创建一个cookie文件,此文件保存了用户名和编号,作为下次登陆的凭证,另外还有一...

    Javascript操纵Cookie实现购物车程序.txt

    通过上述分析,我们可以看出使用JavaScript操纵Cookie实现购物车功能是一个实用且高效的方法。它不仅能够帮助开发者快速实现基本的购物车功能,还可以根据实际需求进行扩展和优化。需要注意的是,在实际项目中还应...

    我用cookie写的购物车实例

    【标题】"我用cookie写的购物车实例"揭示了这个项目是使用Cookie技术来实现一个购物车功能。在Web开发中,Cookie是一种小型文本文件,由服务器发送到用户的浏览器并存储在本地,用来保存用户的状态信息,如登录状态...

    java web开发-购物车功能实现.docx

    为了实现购物车功能,我们可以使用多种方法,包括使用 Cookie、Session 和数据库等。在本文中,我们将详细介绍使用 Cookie 和 Session 实现购物车功能的方法,并分析它们的优缺点。 使用 Cookie 实现购物车 使用 ...

    用cookie写的购物车

    ### 一、使用JavaScript实现购物车功能 #### 1. 使用变量存储商品类型与商品信息 在示例代码中,作者使用了数组来存储不同类型的商品以及每种商品的具体信息。这里可以看到有两个主要的数据结构:`typeObj` 和 `...

    jQuery用Cookie实现加入购物车带抛物线效果

    在本文中,我们将深入探讨如何使用jQuery库结合Cookie技术来实现一个动态的“加入购物车”功能,同时加入抛物线动画效果。这个功能对于电商网站来说尤其吸引用户,因为它可以提供一种直观、有趣的交互体验。 首先,...

    购物车(cookie、session两种实现方式)

    **Cookie实现购物车** 1. **添加商品**:用户选择商品后,将商品ID和数量等信息存储为Cookie。由于Cookie大小有限制(通常4KB),所以可能需要对多个商品进行分组或编码。 2. **查看购物车**:当用户查看购物车时...

    cookie实现面向对象的购物车

    本示例通过使用Cookie来实现一个面向对象的购物车系统,该系统能够跟踪用户的购买选择,并在用户会话期间保持其状态。以下是对这个项目的详细解析: 1. **Cookie基础**:Cookie是一种在客户端存储数据的技术,用于...

Global site tag (gtag.js) - Google Analytics