Java tutorial
/** * PureInfo TGirls * @(#)CookieUtils.java 1.0 2009-4-7 * * Copyright(c) 2004-2005, PureInfo Information Technology Corp. Ltd. * All rights reserved, see the license file. * * www.pureinfo.com.cn */ package com.pureinfo.tgirls.utils.servlet; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import com.pureinfo.ark.ArkHelper; import com.pureinfo.ark.content.ArkContentHelper; import com.pureinfo.force.exception.PureException; import com.pureinfo.tgirls.domain.IUserMgr; import com.pureinfo.tgirls.model.User; public class CookieUtils { public static final String NAME = "n"; public static final String NICK_NAME = "nn"; public static final String TAOBAO_ID = "tid"; public static final String HEAD_IMG = "img"; public static final String TOP_SESSION_ID = "topsessionid"; private static Logger logger = Logger.getLogger(CookieUtils.class.getName()); public static User getLoginUser(HttpServletRequest _request, HttpServletResponse _response) { User loginUser = (User) _request.getSession().getAttribute(ArkHelper.ATTR_LOGIN_USER); if (loginUser != null) { logger.debug("get user from session." + loginUser.getTaobaoID()); return loginUser; } logger.debug("user not in session."); String taobaoId = getCookieValue(_request.getCookies(), TAOBAO_ID); if (StringUtils.isEmpty(taobaoId)) { return null; } try { IUserMgr mgr = (IUserMgr) ArkContentHelper.getContentMgrOf(User.class); loginUser = mgr.getUserByTaobaoId(taobaoId); _request.getSession().setAttribute(ArkHelper.ATTR_LOGIN_USER, loginUser); return loginUser; } catch (PureException e) { // TODO Auto-generated catch block e.printStackTrace(System.err); } return null; } public static String getCookieValue(Cookie[] _cookies, String _attrLoginUser) { logger.debug("to get cookie value of name [" + _attrLoginUser + "]"); if (_cookies == null) { return null; } for (int i = 0; i < _cookies.length; i++) { Cookie c = _cookies[i]; if (c.getName().equals(_attrLoginUser)) { logger.debug("cookie[" + _attrLoginUser + "] value[" + c.getValue() + "]"); return c.getValue(); } } return null; } public static Object getRequestCookieValue(HttpServletRequest request, String key) { Object value = request.getSession().getAttribute(key); if (value != null) { return value; } return getCookieValue(request.getCookies(), key); } }