很久以前使用过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);