Cusorderitem.java 封装了相关的商品购买信息
SessionUser.java 验证用户是否登录,只有合法用户才能拥有购物车
CookieUtil.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]))