/src/main/java/com/up72/web/util/CookieUtil.java

https://github.com/chenchonghz/huikang · Java · 109 lines · 67 code · 12 blank · 30 comment · 13 complexity · cf2a68691bd08bbab8521bfaf57e0cc5 MD5 · raw file

  1. /**
  2. * ��cookie�����
  3. */
  4. package com.up72.web.util;
  5. import java.io.UnsupportedEncodingException;
  6. import java.net.URLDecoder;
  7. import java.net.URLEncoder;
  8. import javax.servlet.http.Cookie;
  9. import javax.servlet.http.HttpServletRequest;
  10. import javax.servlet.http.HttpServletResponse;
  11. import org.apache.log4j.Logger;
  12. import com.up72.sys.ActConstants;
  13. /**
  14. *
  15. * @author zhangkeyi
  16. *
  17. */
  18. public class CookieUtil {
  19. public static Logger logger = Logger.getLogger(sun.reflect.Reflection.getCallerClass(1));
  20. /**
  21. * 通过key得到cookies中的value
  22. * @param request
  23. * @param key
  24. * @return
  25. */
  26. public static String getString (HttpServletRequest request, String key) {
  27. String value = null;
  28. Cookie cookie = null;
  29. Cookie cookies[] = request.getCookies();
  30. if (cookies != null) {
  31. for (int i = 0; i < cookies.length; i++) {
  32. logger.info("cookies.length" + cookies.length);
  33. logger.info("cookies[i].getName()" + cookies[i].getName());
  34. logger.info("cookies[i].getValue()" + cookies[i].getValue());
  35. if (cookies[i].getName().equals(key)){
  36. cookie = cookies[i];
  37. }
  38. }
  39. }
  40. if (cookie != null)
  41. value = cookie.getValue();
  42. if (value == null)
  43. value = "";
  44. try {
  45. value = URLDecoder.decode(value,"UTF-8");
  46. } catch (UnsupportedEncodingException e) {
  47. e.printStackTrace();
  48. }
  49. return value;
  50. }
  51. /**
  52. * 根据登陆用户key和用户名判断用户是否登陆
  53. * @param request
  54. * @param loginKey
  55. * @param loginName
  56. * @return
  57. */
  58. public static boolean isLogin (HttpServletRequest request) {
  59. logger.debug("getString(request,ActConstants.COOKIE_USER_KEY):" + getString(request,ActConstants.COOKIE_USER_KEY));
  60. if(getString(request,ActConstants.COOKIE_USER_KEY) != null && getString(request,ActConstants.COOKIE_USER_KEY) != ""){
  61. return true;
  62. }
  63. return false;
  64. }
  65. public static void clearCookieLogin (HttpServletResponse response ,HttpServletRequest request) {
  66. if(isLogin(request))
  67. setCookie(response,ActConstants.COOKIE_USER_KEY,"",0);
  68. }
  69. public static String getLoginName (HttpServletRequest request) {
  70. return getString(request,ActConstants.COOKIE_USER_KEY);
  71. }
  72. public static void setLoginName (HttpServletResponse response, String value,int seconds) {
  73. setCookie(response,ActConstants.COOKIE_USER_KEY,value,seconds);
  74. }
  75. /**
  76. * 写数据到cookies中
  77. * @param response
  78. * @param name
  79. * @param value
  80. * @param seconds
  81. */
  82. public static void setCookie(HttpServletResponse response, String key,
  83. String value, int seconds) {
  84. try {
  85. logger.debug("key:" + key);
  86. logger.debug("value:" + URLEncoder.encode(value,"UTF-8"));
  87. Cookie cookie = new Cookie(key, URLEncoder.encode(value,"UTF-8"));
  88. cookie.setMaxAge(seconds);
  89. //cookie.setDomain(".192.117");
  90. cookie.setPath("/");
  91. response.addCookie(cookie);
  92. } catch (UnsupportedEncodingException e) {
  93. // TODO Auto-generated catch block
  94. e.printStackTrace();
  95. }
  96. }
  97. }