`

用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   
                {       

相关推荐

Global site tag (gtag.js) - Google Analytics