Cookie使用

很久以前使用过Cookie,已经基本记不住了 ,最近的项目里又使用了这个,想想存一下吧 ,免得到时候使用的时候又得到处找。

Cookie的自动登录 即JSP页面或者服务器检测到本地有Cookie存在  取出并进行检验  有效则跳过登录界面  

RemeberMe  当用户选择此项时  保存本地Cookie为一段有效的时间 如七天 七天内可以实现自动登录

一般会选择搭配Session使用 因为Cookie是存储在浏览器的 如果浏览器禁止Cookie 则相关功能无法使用

                                            而Session是存储在服务器的  只需要考虑Session存储过多对服务器的压力

                                            Session也记不住了  以后有时间慢慢补吧

JSP页面Cookie的使用 

   function setCookie(name,value,minute){
if(minute!=null && minute!=undefined && minute!='' && minute>0){
  var exp = new Date();
  exp.setTime(exp.getTime() + minute*60*1000);
  document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}else{
document.cookie = name + "="+ escape (value) ;
}
  }
  
  function getCookie(name){
  var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
  if(arr=document.cookie.match(reg))
  return unescape(arr[2]);
  else
  return null;
  }
  
  function delCookie(name){
  var exp = new Date();
  exp.setTime(exp.getTime() - 1);
  var cval=getCookie(name);
  if(cval!=null)
  document.cookie= name + "="+cval+";expires="+exp.toGMTString();

  }


JAVA代码中Cookie的使用 

CookieUtil.java


import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


public class CookieUtil {


public static Cookie getCookie(String cookieName,
final HttpServletRequest request) throws IllegalArgumentException {
if (null == request)
throw new IllegalArgumentException("request is null");
Cookie[] cookies = request.getCookies();
if (null != cookies)
for (Cookie cookie : cookies) {
if (cookieName.equals(cookie.getName())) {
return cookie;
}
}
return null;
}


public static String getCookieValue(String cookieName,
final HttpServletRequest httpRequest) {
Cookie cookie = getCookie(cookieName, httpRequest);
if (null != cookie) {
return cookie.getValue();
}
return null;
}


public static void addCookie(Cookie cookie, HttpServletResponse response)
throws IllegalArgumentException {
if (response == null)
throw new IllegalArgumentException("Response is null");
response.addCookie(cookie);
}


public static void addCookie(String cookieName, String cookieValue,
int expiry, String path, HttpServletResponse httpResponse) {
Cookie cookie = new Cookie(cookieName, cookieValue);
if (expiry > 0) {
cookie.setMaxAge(expiry);
}
if (path != null) {
cookie.setPath(path);
}
addCookie(cookie, httpResponse);
}


public static void addCookie(String cookieName, String cookieValue,
int expiry, String path, String domain,
HttpServletResponse httpResponse) {
Cookie cookie = new Cookie(cookieName, cookieValue);
if (expiry > 0) {
cookie.setMaxAge(expiry);
}
if (path != null) {
cookie.setPath(path);
}
if (domain != null) {
cookie.setDomain(domain);
}
addCookie(cookie, httpResponse);
}


public static void addCookie(String cookieName, String cookieValue,
HttpServletResponse httpResponse) {
addCookie(cookieName, cookieValue, 0, null, httpResponse);
}


public static void addCookie(String cookieName, String cookieValue,
int expiry, HttpServletResponse httpResponse) {
addCookie(cookieName, cookieValue, expiry, null, httpResponse);
}


public static void removeCookie(String cookieName,
HttpServletRequest httpRequest, HttpServletResponse httpResponse) {
Cookie cookie = getCookie(cookieName, httpRequest);
if (cookie != null) {
cookie.setValue(null);
cookie.setMaxAge(0);
addCookie(cookie, httpResponse);
}
}

public static void removeCookie(String cookieName,String path,String domain,
HttpServletRequest httpRequest, HttpServletResponse httpResponse) {
Cookie cookie = getCookie(cookieName, httpRequest);
if (cookie != null) {
cookie.setValue(null);
cookie.setPath(path);
cookie.setDomain(domain);
cookie.setMaxAge(0);
addCookie(cookie, httpResponse);
}
}

}


CookieUtil的调用

CookieUtil.addCookie("cookieName", cookieValue.toString(), 0, "/", "domain"(例www.temp.api), HttpServletResponse);

CookieUtil.removeCookie("cookieName", HttpServletRequest, HttpServletResponse);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值