`
yahaitt
  • 浏览: 757138 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

用Cookie实现的购物车

阅读更多
Cusorderitem.java 封装了相关的商品购买信息
  1. package com.yahaitt.model;             
  2.   
  3. import java.io.Serializable;   
  4.   
  5. import com.yahaitt.util.PageProperty;   
  6. /**  
  7.  * Cusorderitem generated by jwgen  
  8.  *  
  9.  * @author mahaibo  
  10.  * 2007-08-26 17:27:41  
  11.  */  
  12. public class Cusorderitem extends PageProperty implements Serializable   
  13. {   
  14.     private Integer id;   
  15.     private Integer quantity;   
  16.     private Float unitprice;   
  17.     private String color;   
  18.     private String chic;   
  19.     private Cusorder cusorder;   
  20.     private Product product;   
  21. /*-----------------default construct-----------*/  
  22.     public Cusorderitem()   
  23.     {   
  24.     }   
  25. /*-----------------sample construct--------------*/    
  26.   public Cusorderitem(   
  27.   Integer id   
  28.   )   
  29.   {   
  30.         this.id = id;   
  31.   }   
  32. /*-----------------full construct--------------*/     
  33.     public Cusorderitem(   
  34.   Integer id,   
  35.   Cusorder cusorder,   
  36.   Product product   
  37.   )   
  38.   {   
  39.           this.id = id;   
  40.           this.cusorder = cusorder;   
  41.           this.product = product;   
  42.   }   
  43.      
  44.     public Integer getId()   
  45.     {   
  46.             return id;   
  47.     }   
  48.     public void setId(Integer id)   
  49.     {   
  50.             this.id = id;   
  51.     }   
  52.     public Integer getQuantity()   
  53.     {   
  54.             return quantity;   
  55.     }   
  56.     public void setQuantity(Integer quantity)   
  57.     {   
  58.             this.quantity = quantity;   
  59.     }   
  60.     public Float getUnitprice()   
  61.     {   
  62.             return unitprice;   
  63.     }   
  64.     public void setUnitprice(Float unitprice)   
  65.     {   
  66.             this.unitprice = unitprice;   
  67.     }   
  68.     public Cusorder getCusorder()   
  69.     {   
  70.             return cusorder;   
  71.     }   
  72.     public void setCusorder(Cusorder cusorder)   
  73.     {   
  74.             this.cusorder = cusorder;   
  75.     }   
  76.     public Product getProduct()   
  77.     {   
  78.             return product;   
  79.     }   
  80.     public void setProduct(Product product)   
  81.     {   
  82.             this.product = product;   
  83.     }   
  84.     public String getChic() {   
  85.         return chic;   
  86.     }   
  87.     public void setChic(String chic) {   
  88.         this.chic = chic;   
  89.     }   
  90.     public String getColor() {   
  91.         return color;   
  92.     }   
  93.     public void setColor(String color) {   
  94.         this.color = color;   
  95.     }   
  96.        
  97. }   
  98.       

 

SessionUser.java 验证用户是否登录,只有合法用户才能拥有购物车
  1. package com.yahaitt.web;   
  2.   
  3. import java.util.Set;   
  4.   
  5. import javax.servlet.http.HttpServletRequest;   
  6.   
  7. import org.springframework.web.util.WebUtils;   
  8.   
  9. import com.yahaitt.model.User;   
  10. import com.yahaitt.service.UserManager;   
  11. import com.yahaitt.util.CookieUtil;   
  12.   
  13. public class SessionUser {   
  14.   
  15.     private String id;   
  16.     private String name;   
  17.     private String loginname;   
  18.     private Integer status;   
  19.     private Set resPermissions;   
  20.     private String tel;   
  21.     private String addr;   
  22.     private Integer zip;   
  23. //  public SessionUser(String id, String name) {   
  24. //      this.id = id;   
  25. //      this.name = name;   
  26. //  }   
  27. //  public SessionUser(String id,String loginname,Integer status)   
  28. //  {   
  29. //      this.id = id;   
  30. //      this.loginname = loginname;   
  31. //      this.status = status;   
  32. //  }   
  33.     public SessionUser(Integer id,String loginname,String name,String tel, String addr,Integer zip,Integer status)   
  34.     {   
  35.         this.id = id.toString();   
  36.         this.loginname = loginname;   
  37.         this.name = name;   
  38.         this.tel = tel;   
  39.         this.addr = addr;   
  40.         this.zip = zip;   
  41.         this.status = status;   
  42.     }   
  43.   
  44.     public String getName() {   
  45.         return name;   
  46.     }   
  47.   
  48.     public void setName(String name) {   
  49.         this.name = name;   
  50.     }   
  51.        
  52.     public String getTel() {   
  53.         return tel;   
  54.     }   
  55.   
  56.     public void setTel(String tel) {   
  57.         this.tel = tel;   
  58.     }   
  59.        
  60.     public String getAddr() {   
  61.         return addr;   
  62.     }   
  63.   
  64.     public void setAddr(String addr) {   
  65.         this.addr = addr;   
  66.     }   
  67.   
  68.     public Integer getZip() {   
  69.         return zip;   
  70.     }   
  71.   
  72.     public void setZip(Integer zip) {   
  73.         this.zip = zip;   
  74.     }   
  75.   
  76.     public String getLoginname() {   
  77.         return loginname;   
  78.     }   
  79.     public void setLoginname(String loginname) {   
  80.         this.loginname = loginname;   
  81.     }   
  82.     public Integer getStatus() {   
  83.         return status;   
  84.     }   
  85.     public void setStatus(Integer status) {   
  86.         this.status = status;   
  87.     }   
  88.        
  89.     public String getId() {   
  90.         return id;   
  91.     }   
  92.     public void setId(String id) {   
  93.         this.id = id;   
  94.     }   
  95.     /**  
  96.      * 从request获取SessionUser  
  97.      */  
  98.     public static SessionUser getFromRequest(HttpServletRequest request,UserManager userManager) {   
  99.         SessionUser su = (SessionUser)WebUtils.getSessionAttribute(request, "sessionUser");   
  100.         if(su == null){   
  101.             CookieUtil.getCookie(request,userManager);   
  102.             su = (SessionUser)WebUtils.getSessionAttribute(request, "sessionUser");   
  103.         }   
  104.         return su;   
  105.     }   
  106.        
  107.     public static SessionUser getFromRequest(HttpServletRequest request) {   
  108.         SessionUser su = (SessionUser)WebUtils.getSessionAttribute(request, "sessionUser");   
  109.   
  110.         return su;   
  111.     }   
  112.        
  113.     /**  
  114.      * 从request获取SessionUser的id  
  115.      */  
  116.     public static String getId(HttpServletRequest request) {   
  117.         SessionUser user = getFromRequest(request);   
  118.         if (user != null) {   
  119.             return user.getId();   
  120.         }   
  121.            
  122.         return null;   
  123.     }   
  124.        
  125.     /**  
  126.      * 从request获取SessionUser的name  
  127.      */  
  128.     public static String getName(HttpServletRequest request) {   
  129.         SessionUser user = getFromRequest(request);   
  130.         if (user != null) {   
  131.             return user.getName();   
  132.         }   
  133.            
  134.         return null;   
  135.     }   
  136.        
  137.     /**  
  138.      * 从request获取SessionUser的loginname  
  139.      */  
  140.     public static String getLoginname(HttpServletRequest request,UserManager userManager) {   
  141.         SessionUser user = getFromRequest(request,userManager);   
  142.         if (user != null) {   
  143.             return user.getLoginname();   
  144.         }   
  145.            
  146.         return null;   
  147.     }   
  148.        
  149.        
  150.     public static String getLoginname(HttpServletRequest request) {   
  151.         SessionUser user = getFromRequest(request);   
  152.         if (user != null) {   
  153.             return user.getLoginname();   
  154.         }   
  155.            
  156.         return null;   
  157.     }   
  158.        
  159.     public Set getPermissionStrings()   
  160.     {   
  161.         return resPermissions;   
  162.     }   
  163.        
  164.     /**  
  165.      * 把用户信息放到session里  
  166.      * @param request  
  167.      * @param user  
  168.      */  
  169.     public static void saveSession(HttpServletRequest request,User user)   
  170.     {   
  171.         String usertel = user.getTel();   
  172.         String usermobile = user.getMobile();   
  173.         String usertels = "";   
  174.         if(null!=usertel && !"".equals(usertel) && null!=usermobile && !"".equals(usermobile))   
  175.         {   
  176.             usertels = usertel + "/" + usermobile;   
  177.         }   
  178.         else if(null!=usertel && !"".equals(usertel))   
  179.         {   
  180.             usertels = usertel;   
  181.         }   
  182.         else if(null!=usermobile && !"".equals(usermobile))   
  183.         {   
  184.             usertels = usermobile;   
  185.         }   
  186.         SessionUser su = new SessionUser(user.getId(), user.getLoginname(),user.getName(),usertels,user.getAddr(),user.getZip(),user.getStatus());   
  187.         WebUtils.setSessionAttribute(request, "sessionUser", su);   
  188.     }   
  189.        
  190.     public static void removeSession(HttpServletRequest request)   
  191.     {   
  192.         WebUtils.setSessionAttribute(request, "sessionUser"null);   
  193.     }   
  194.   
  195.        
  196.        
  197. }   

 

CookieUtil.java 对购物车中的商品信息进行操作时的应用
  1. package com.yahaitt.util;   
  2.   
  3. import java.net.URLDecoder;   
  4. import java.net.URLEncoder;   
  5. import java.util.ArrayList;   
  6. import java.util.List;   
  7.   
  8. import javax.servlet.http.Cookie;   
  9. import javax.servlet.http.HttpServletRequest;   
  10. import javax.servlet.http.HttpServletResponse;   
  11.   
  12. import org.springframework.web.util.WebUtils;   
  13.   
  14. import com.yahaitt.model.Cusorderitem;   
  15. import com.yahaitt.model.User;   
  16. import com.yahaitt.service.ProductManager;   
  17. import com.yahaitt.service.UserManager;   
  18. import com.yahaitt.web.SessionUser;   
  19.   
  20.   
  21.   
  22. public class CookieUtil {   
  23.        
  24.     /**  
  25.      * 在客户端保存Cookie  
  26.      * @param response  
  27.      * @param user  
  28.      */  
  29.     public static void saveCookie(HttpServletResponse response,User user)   
  30.     {   
  31.         Cookie userCookie = new Cookie(ContextConfigure.USER_COOKIE_NAME,URLEncoder.encode(user.getLoginname()));   
  32.         userCookie.setMaxAge( 60 * 60 * 24 * 30 );   
  33.     //    userCookie.setDomain( ContextConfigure.WSAY_DOMAIN );   
  34.         userCookie.setPath("/");   
  35.         Cookie passwordCookie = new Cookie(ContextConfigure.USER_COOKIE_PASSWORD,URLEncoder.encode(user.getPassword()) );   
  36.         passwordCookie.setMaxAge( 60 * 60 * 24 * 30 );   
  37.      //   passwordCookie.setDomain( ContextConfigure.WSAY_DOMAIN );   
  38.         passwordCookie.setPath("/");   
  39.         response.addCookie( userCookie );//userCookie中包含中文时怎么会出错误呢?   
  40.         response.addCookie( passwordCookie );   
  41.     }   
  42.        
  43.     /**  
  44.      * 从客户端移除Cookie  
  45.      * @param response  
  46.      */  
  47.     public  static void removeCookie(HttpServletResponse response)   
  48.     {   
  49.         Cookie userCookie = new Cookie(ContextConfigure.USER_COOKIE_NAME,"");   
  50.         //userCookie.setDomain( ContextConfigure.WSAY_DOMAIN );   
  51.         userCookie.setMaxAge(0);   
  52.         userCookie.setPath("/");   
  53.         Cookie passwordCookie = new Cookie(ContextConfigure.USER_COOKIE_PASSWORD,"" );   
  54.         passwordCookie.setMaxAge( 0 );   
  55.      //   passwordCookie.setDomain( ContextConfigure.WSAY_DOMAIN );   
  56.         passwordCookie.setPath("/");   
  57.         response.addCookie( userCookie );   
  58.         response.addCookie( passwordCookie );   
  59.     }   
  60.        
  61.     /**  
  62.      * 从客户端获得Cookie  
  63.      * @param request  
  64.      * @param userManager  
  65.      */  
  66.     public  static void getCookie(HttpServletRequest request,UserManager userManager)   
  67.     {   
  68.          Cookie name = WebUtils.getCookie(request, ContextConfigure.USER_COOKIE_NAME);   
  69.          Cookie password = WebUtils.getCookie(request, ContextConfigure.USER_COOKIE_PASSWORD);   
  70.          String now = SecurityBase.getNow();   
  71.          if (name != null && password != null) {   
  72.              User user = userManager.checkPassword(URLDecoder.decode(name.getValue()), URLDecoder.decode(password.getValue()));   
  73.             if(user != null)   
  74.             {   
  75.                 SessionUser.saveSession(request,user);   
  76.                    
  77.                 //user.setLastLogin(user.getCurrentLogin());   
  78.                 user.setLastlogin(now);   
  79.                 user.setCurrentlogin(now);   
  80.                 userManager.update(user);   
  81.             }   
  82.             else  
  83.             {   
  84.                 SessionUser.removeSession(request);   
  85.             }   
  86.          }   
  87.     }   
  88.        
  89.     /**  
  90.      * 在购物车中添加商品,购物车存于Cookie  
  91.      * @param request  
  92.      * @param response  
  93.      * @param cusorderitem  
  94.      */  
  95.     public static void saveToCar(HttpServletRequest request,HttpServletResponse response,Cusorderitem cusorderitem)   
  96.     {   
  97.         //cookie与用户登录名关联,可以根据不同的用户设置不同的购物车(方便不同用户在同台机器使用时的情况)   
  98.         String loginname = SessionUser.getLoginname(request);   
  99.         if(null==loginname || "".equals(loginname.trim()) )   
  100.         {   
  101.             return;   
  102.         }   
  103.         String[] products = null;   
  104.         String[] counts = null;   
  105.         String[] colors = null;   
  106.         String[] chics = null;   
  107.         Cookie[] aa = request.getCookies();   
  108.         if(null==aa)   
  109.         {   
  110.             aa = new Cookie[0];   
  111.         }   
  112.         for(int i=0;i
  113.         {   
  114.             Cookie cook = aa[i];   
  115.             if((loginname+"_products").equals(cook.getName()))   
  116.             {   
  117.                 products = cook.getValue().split("\\|");   
  118.             }   
  119.             else if((loginname+"_counts").equals(cook.getName()))   
  120.             {   
  121.                 counts = cook.getValue().split("\\|");   
  122.             }   
  123.             else if((loginname+"_colors").equals(cook.getName()))   
  124.             {   
  125.                 colors = cook.getValue().split("\\|");   
  126.             }   
  127.             else if((loginname+"_chics").equals(cook.getName()))   
  128.             {   
  129.                 chics = cook.getValue().split("\\|");   
  130.             }              
  131.         }   
  132.         if(null!=cusorderitem)   
  133.         {   
  134.             String product = cusorderitem.getProduct().getId().toString();   
  135.             //对color元素进行编码   
  136.             String color = URLEncoder.encode(cusorderitem.getColor());   
  137.             String chic = cusorderitem.getChic();   
  138.             int count = cusorderitem.getQuantity().intValue();   
  139.             String countstr = new Integer(count).toString();   
  140.             boolean flag = true;   
  141.                
  142.             if(null!=products)   
  143.             {   
  144.                 for(int i=0;i
  145.                 {   
  146.                     if(product.equals(products[i]) && color.equals(colors[i]) && chic.equals(chics[i]))   
  147.       
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics