Java.Utils:Cookie操作工具類

package com.bood.common.utils;

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

/**
 * Cookie操作
 * 
 * @author:bood
 * @since:2020/2/7
 */
public class CookieUtils {

	public CookieUtils() {
	}

	/**
	 * 從Cookie中取出某個key的值
	 * @param request
	 * @param name
	 * @return
	 */
	public static String getValue(HttpServletRequest request,String name){
		Cookie[] cookies=request.getCookies();
		if(cookies==null)return null;
		String v=null;
        for(Cookie cookie:cookies){
        	if(cookie.getName().equalsIgnoreCase(name)){
        		v=cookie.getValue();
        		break;
        	}
        }
        return v;
	}
	
	/**
	 * 設置Cookie中的某個值
	 * @param request
	 * @param name
	 * @return
	 */
	public static void setValue(HttpServletRequest request,HttpServletResponse response,String name,String value){
		Cookie[] cookies=request.getCookies();
		if(cookies==null)return;
        for(Cookie cookie:cookies){
        	if(cookie.getName().equalsIgnoreCase(name)){
        		cookie.setValue(value);
        		response.addCookie(cookie);
        		break;
        	}
        }
	}
	
	/**
	 * 判斷Cookie中是否含有某個key
	 * @param request
	 * @param name
	 * @return
	 */
	public static boolean hasCookie(HttpServletRequest request,String name){
		Cookie[] cookies=request.getCookies();
		if(cookies==null)return false;
		boolean has=false;
        for(Cookie cookie:cookies){
        	if(cookie.getName().equalsIgnoreCase(name)){
        		has=true;
        		break;
        	}
        }
        return has;
	}
	
	/**
	 * 寫Cookie
	 * @param response HttpServletResponse
	 * @param name Cookie的名字
	 * @param value Cookie的值
	 * @param secure 是否安全
	 * @param expiry 過期時間,-1表示關閉瀏覽器即過期,請給出一個合理有效的值
	 */
	public static void addCookie(HttpServletRequest request,HttpServletResponse response,String name,String value,boolean secure,int expiry,String path){
		Cookie cookie=new Cookie(name, value);
		if(hasCookie(request, name)){
			cookie.setValue(value);
		}
		cookie.setSecure(secure);
		cookie.setMaxAge(expiry);
		response.addCookie(cookie);
	}
	
	/**
	 * 移除Cookie中的沒個Key
	 * @param request
	 * @param response
	 * @param name
	 */
	public static void clearCookie(HttpServletRequest request,HttpServletResponse response,String name){
		Cookie[] cookies=request.getCookies();
		if(cookies==null)return;
        for(Cookie cookie:cookies){
        	if(cookie.getName().equalsIgnoreCase(name)){
        		cookie.setMaxAge(0);
            	cookie.setValue(null);
            	response.addCookie(cookie);
        	}
        }
	}
	
	/**
	 * 清除所有Cookie
	 * @param request
	 * @param response
	 */
	public static void clearAll(HttpServletRequest request,HttpServletResponse response){
		Cookie[] cookies=request.getCookies();
        for(Cookie cookie:cookies){
        	cookie.setMaxAge(0);
        	cookie.setValue(null);
        	response.addCookie(cookie);
        }
	}
	
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章