- 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);
- }
- }
--------------------------
- 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]))
Framework/__Spring