package com.zking.zmall.util;
import lombok.extern.slf4j.Slf4j;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;
@Slf4j
public class CookieUtils {
/**
*
* @Description: 得到Cookie的值, 不编码
* @param request
* @param cookieName
* @return
*/
public static String getCookieValue(HttpServletRequest request, String cookieName) {
return getCookieValue(request, cookieName, false);
}
/**
*
* @Description: 得到Cookie的值
* @param request
* @param cookieName
* @param isDecoder
* @return
*/
public static String getCookieValue(HttpServletRequest request, String cookieName, boolean isDecoder) {
Cookie[] cookieList = request.getCookies();
if (cookieList == null || cookieName == null) {
return null;
}
String retValue = null;
try {
for (int i = 0; i < cookieList.length; i++) {
if (cookieList[i].getName().equals(cookieName)) {
if (isDecoder) {
retValue = URLDecoder.decode(cookieList[i].getValue(), "UTF-8");
} else {
retValue = cookieList[i].getValue();
}
break;
}
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return retValue;
}
/**
*
* @Description: 得到Cookie的值
* @param request
* @param cookieName
* @param encodeString
* @return
*/
public static String getCookieValue(HttpServletRequest request, String cookieName, String encodeString) {
Cookie[] cookieList = request.getCookies();
if (cookieList == null || cookieName == null) {
return null;
}
String retValue = null;
try {
for (int i = 0; i < cookieList.length; i++) {
if (cookieList[i].getName().equals(cookieName)) {
retValue = URLDecoder.decode(cookieList[i].getValue(), encodeString);
break;
}
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return retValue;
}
/**
*
* @Description: 设置Cookie的值 不设置生效时间默认浏览器关闭即失效,也不编码
* @param request
* @param response
* @param cookieName
* @param cookieValue
*/
public static void setCookie(HttpServletRequest request, HttpServletResponse response, String cookieName,
String cookieValue) {
setCookie(request, response, cookieName, cookieValue, -1);
}
/**
*
* @Description: 设置Cookie的值 在指定时间内生效,但不编码
* @param request
* @param response
* @param cookieName
* @param cookieValue
* @param cookieMaxage
*/
public static void setCookie(HttpServletRequest request, HttpServletResponse response, String cookieName,
String cookieValue, int cookieMaxage) {
setCookie(request, response, cookieName, cookieValue, cookieMaxage, false);
}
/**
*
* @Description: 设置Cookie的值 不设置生效时间,但编码
* 在服务器被创建,返回给客户端,并且保存客户端
* 如果设置了SETMAXAGE(int seconds),会把cookie保存在客户端的硬盘中
* 如果没有设置,会默认把cookie保存在浏览器的内存中
* 一旦设置setPath():只能通过设置的路径才能获取到当前的cookie信息
* @param request
* @param response
* @param cookieName
* @param cookieValue
* @param isEncode
*/
public static void setCookie(HttpServletRequest request, HttpServletResponse response, String cookieName,
String cookieValue, boolean isEncode) {
setCookie(request, response, cookieName, cookieValue, -1, isEncode);
}
/**
*
* @Description: 设置Cookie的值 在指定时间内生效, 编码参数
* @param request
* @param response
* @param cookieName
* @param cookieValue
* @param cookieMaxage
* @param isEncode
*/
public static void setCookie(HttpServletRequest request, HttpServletResponse response, String cookieName,
String cookieValue, int cookieMaxage, boolean isEncode) {
doSetCookie(request, response, cookieName, cookieValue, cookieMaxage, isEncode);
}
/**
*
* @Description: 设置Cookie的值 在指定时间内生效, 编码参数(指定编码)
* @param request
* @param response
* @param cookieName
* @param cookieValue
* @param cookieMaxage
* @param encodeString
*/
public static void setCookie(HttpServletRequest request, HttpServletResponse response, String cookieName,
String cookieValue, int cookieMaxage, String encodeString) {
doSetCookie(request, response, cookieName, cookieValue, cookieMaxage, encodeString);
}
/**
*
* @Description: 删除Cookie带cookie域名
* @param request
* @param response
* @param cookieName
*/
public static void deleteCookie(HttpServletRequest request, HttpServletResponse response,
String cookieName) {
doSetCookie(request, response, cookieName, null, -1, false);
}
/**
*
* @Description: 设置Cookie的值,并使其在指定时间内生效
* @param request
* @param response
* @param cookieName
* @param cookieValue
* @param cookieMaxage cookie生效的最大秒数
* @param isEncode
*/
private static final void doSetCookie(HttpServletRequest request, HttpServletResponse response,
String cookieName, String cookieValue, int cookieMaxage, boolean isEncode) {
try {
if (cookieValue == null) {
cookieValue = "";
} else if (isEncode) {
cookieValue = URLEncoder.encode(cookieValue, "utf-8");
}
Cookie cookie = new Cookie(cookieName, cookieValue);
if (cookieMaxage > 0)
cookie.setMaxAge(cookieMaxage);
if (null != request) {// 设置域名的cookie
String domainName = getDomainName(request);
log.info("========== domainName: {} ==========", domainName);
if (!"localhost".equals(domainName)) {
cookie.setDomain(domainName);
}
}
cookie.setPath("/");
response.addCookie(cookie);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
*
* @Description: 设置Cookie的值,并使其在指定时间内生效
* @param request
* @param response
* @param cookieName
* @param cookieValue
* @param cookieMaxage cookie生效的最大秒数
* @param encodeString
*/
private static final void doSetCookie(HttpServletRequest request, HttpServletResponse response,
String cookieName, String cookieValue, int cookieMaxage, String encodeString) {
try {
if (cookieValue == null) {
cookieValue = "";
} else {
cookieValue = URLEncoder.encode(cookieValue, encodeString);
}
Cookie
没有合适的资源?快使用搜索试试~ 我知道了~
对应博主秒杀项目之秒杀商品展示及商品秒杀
共256个文件
class:61个
java:59个
xml:44个
需积分: 0 0 下载量 182 浏览量
2023-02-13
19:09:30
上传
评论
收藏 515KB ZIP 举报
温馨提示
对应博主秒杀项目之秒杀商品展示及商品秒杀 这是博主对应的整个项目
资源推荐
资源详情
资源评论
收起资源包目录
对应博主秒杀项目之秒杀商品展示及商品秒杀 (256个子文件)
gradlew.bat 2KB
CodeGenerator.class 8KB
CookieUtils.class 7KB
Product.class 6KB
User.class 5KB
Order.class 5KB
OrderServiceImpl.class 4KB
Kill.class 4KB
JsonResponseBody.class 4KB
UserAddress.class 4KB
ProductController.class 4KB
OrderDetail.class 4KB
ProductCategory.class 3KB
UserServiceImpl.class 3KB
UserArgumentResolver.class 3KB
JsonResponseStatus.class 3KB
SnowFlake.class 2KB
OrderController.class 2KB
ProductServiceImpl.class 2KB
ProductServiceImplTest.class 2KB
UserController.class 2KB
RedisServiceImpl.class 2KB
UserVo.class 2KB
BusinessException.class 2KB
RedisConfig.class 2KB
CodeGenerator$2.class 2KB
GlobalExceptionHandler.class 1KB
WebConfig.class 1KB
ZmallOrderApplication.class 945B
ZmallUserApplication.class 942B
ZmallProductApplication.class 888B
CartController.class 850B
ZmallGatewayApplication.class 798B
ZmallCartApplication.class 789B
ProductCategoryServiceImpl.class 762B
UserAddressServiceImpl.class 734B
OrderDetailServiceImpl.class 734B
KillServiceImpl.class 685B
ProductMapper.class 679B
IProductService.class 672B
IOrderService.class 662B
IUserService.class 643B
ApiProductService.class 567B
CodeGenerator$1.class 562B
ZmallProductApplicationTests.class 553B
ZmallOrderApplicationTests.class 547B
ZmallCartApplicationTests.class 544B
IOrderFeignService.class 479B
DataSourceProxyConfig.class 439B
IProductCategoryService.class 345B
IUserAddressService.class 333B
IOrderDetailService.class 333B
ProductCategoryMapper.class 332B
SessionConfig.class 322B
OrderDetailMapper.class 320B
UserAddressMapper.class 320B
SessionConfig.class 316B
IKillService.class 312B
OrderMapper.class 302B
KillMapper.class 299B
UserMapper.class 299B
IRedisService.class 284B
mvnw.cmd 7KB
mvnw.cmd 7KB
mvnw.cmd 7KB
mvnw.cmd 7KB
mvnw.cmd 7KB
entity2.java.ftl 4KB
entity2.java.ftl 4KB
mapper2.xml.ftl 1KB
mapper2.xml.ftl 1KB
controller2.java.ftl 1018B
controller2.java.ftl 1018B
serviceImpl2.java.ftl 680B
serviceImpl2.java.ftl 680B
service2.java.ftl 394B
service2.java.ftl 394B
mapper2.java.ftl 392B
mapper2.java.ftl 392B
.gitignore 395B
.gitignore 395B
.gitignore 395B
.gitignore 395B
.gitignore 395B
gradlew 5KB
index.html 72KB
index.html 72KB
product.html 51KB
product.html 51KB
sellDetails.html 46KB
sellDetails.html 46KB
buyCar.html 37KB
buyCar.html 37KB
login.html 6KB
login.html 6KB
head.html 265B
head.html 265B
head.html 263B
head.html 263B
head.html 257B
共 256 条
- 1
- 2
- 3
资源评论
xxie编程
- 粉丝: 28
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功