![JAR search and dependency download from the Maven repository](/logo.png)
com.zoi7.component.web.util.CookieUtils Maven / Gradle / Ivy
package com.zoi7.component.web.util;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.math.NumberUtils;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Cookie 辅助类
*/
public class CookieUtils {
/**
* 每页条数cookie名称
*/
public static final String COOKIE_PAGE_SIZE = "_cookie_page_size";
/**
* 默认每页条数
*/
public static final int DEFAULT_SIZE = 20;
/**
* 手机端默认每页条数
*/
public static final int FRONT_DEFAULT_SIZE = 50;
/**
* 最大每页条数
*/
public static final int MAX_SIZE = 200;
/**
* 获得cookie的每页条数
*
* 使用_cookie_page_size作为cookie name
*
* @param request HttpServletRequest
* @return default:20 max:200
*/
public static int getPageSize(HttpServletRequest request) {
Cookie cookie = getCookie(request, COOKIE_PAGE_SIZE);
int count = 0;
if (cookie != null) {
if (NumberUtils.isDigits(cookie.getValue())) {
count = Integer.parseInt(cookie.getValue());
}
}
if (count <= 0) {
count = DEFAULT_SIZE;
} else if (count > MAX_SIZE) {
count = MAX_SIZE;
}
return count;
}
/**
* 获得cookie的每页条数
*
* 使用_cookie_page_size作为cookie name
*
* @param request HttpServletRequest
* @return default:20 max:200
*/
public static int getFrontPageSize(HttpServletRequest request) {
Cookie cookie = getCookie(request, COOKIE_PAGE_SIZE);
int count = 0;
if (cookie != null) {
if (NumberUtils.isDigits(cookie.getValue())) {
count = Integer.parseInt(cookie.getValue());
}
}
if (count <= 0) {
count = FRONT_DEFAULT_SIZE;
} else if (count > MAX_SIZE) {
count = MAX_SIZE;
}
return count;
}
/**
* 获得cookie
*
* @param name cookie name
* @return if exist return cookie, else return null.
*/
public static Cookie getCookie(HttpServletRequest request, String name) {
Cookie[] cookies = request.getCookies();
if (cookies != null && cookies.length > 0) {
for (Cookie c : cookies) {
if (c.getName().equals(name)) {
return c;
}
}
}
return null;
}
/**
* 根据部署路径,将cookie保存在根目录。
*
* @param request
* @param response
* @param name
* @param value
* @param expiry
* @param domain
* @return
*/
public static Cookie addCookie(HttpServletRequest request, HttpServletResponse response,
String name, String value, Integer expiry, String domain) {
Cookie cookie = new Cookie(name, value);
if (expiry != null) {
cookie.setMaxAge(expiry);
}
if (StringUtils.isNotBlank(domain)) {
cookie.setDomain(domain);
}
String ctx = request.getContextPath();
cookie.setPath(StringUtils.isBlank(ctx) ? "/" : ctx);
response.addCookie(cookie);
return cookie;
}
/**
* 取消cookie
*
* @param request
* @param response
* @param name
* @param domain
*/
public static void cancleCookie(HttpServletRequest request,
HttpServletResponse response, String name, String domain) {
Cookie cookie = new Cookie(name, "");
cookie.setMaxAge(0);
String ctx = request.getContextPath();
cookie.setPath(StringUtils.isBlank(ctx) ? "/" : ctx);
if (StringUtils.isNotBlank(domain)) {
cookie.setDomain(domain);
}
response.addCookie(cookie);
}
}