获取http请求的cookie的工具类:CookieUtils

本文介绍了用于处理HTTP请求Cookie的工具类CookieUtils,包括保存、获取、删除Cookie以及获取请求地址等关键方法。该工具类在无状态HTTP请求下,对于实现购物车功能等场景具有实用性。
摘要由CSDN通过智能技术生成

最近在看自己项目的http无状态下如何实现购物车功能的,发现对cookie的处理。这个工具类或许能对以后自己提供些车轮,我就先放上来供以后参考。后面我会陆续写出什么是http请求无状态,项目中都有那些方案可以解决无状态请求下的购物车逻辑。
本工具类包含:保存cookie,获取cookie,删除cookie,以及获取请求地址这几个方法


import java.util.HashMap;
import java.util.Map;
import java.util.Random;

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

import org.apache.commons.lang.StringUtils;

/**
 * cookie操作
 * @author zhanglf
 * @since 2019-01-20
 */
public class CookieUtils {

	
	/**
	 * 获取访问URL
	 * @param request
	 * @return
	 */
	public static String getRequestURL(HttpServletRequest request){
		StringBuffer url = new StringBuffer();
		url.append("//").append(request.getServerName()).append(':').append(request.getServerPort());
        url.append(request.getRequestURI());
		if(request.getQueryString() != null) {
			url.append("?").append(request.getQueryString());
		}
		return url.toString();
	}
	
	
	/**
	 * 获取Cookie值,如果没有获取到,则自动从请求参数request中获取
	 * @param request
	 * @param key
	 * @return
	 */
	public static String getCookieValue(HttpServletRequest request, String key) {
		try {
			Cookie[] ck = request.getCookies();
			if (ck != null) {
				for (Cookie cookie : ck) {
					if (cookie.getName().equals(key)) {
						return cookie.getValue();
					}
				}
			}
			return request.getParameter(key);// 尝试在请求参数中获取
		} catch (Exception e) {
			return null;
		}
	}

	/**
	 * 响应Cookie到浏览器.即放到response Headers里
	 * @param response
	 * @param key
	 * @param value
	 */
	public static void addCookie(HttpServletResponse response, String key, String value) {
		try {
			Cookie cookie = new Cookie(key, value);
			cookie.setPath("/");
			response.addCookie(cookie);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	/**
	 * 响应Cookie到浏览器,放到response Headers中
	 * @param response
	 * @param key
	 * @param value
	 */
	public static void addCookie(HttpServletResponse response, String key, String value, int maxTime) {
		try {
			Cookie cookie = new Cookie(key, value);
			cookie.setPath("/");
			cookie.setMaxAge(maxTime);
			response.addCookie(cookie);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	/**
	 * 删除指定域下的cookie
	 * @param response
	 * @param domain
	 * @param key
	 */
	public static void delC
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

万米高空

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值