package com.cloudjun.flowerart.utils;
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的值, 不编码
*/
public static String getCookieValue(HttpServletRequest request, String cookieName) {
return getCookieValue(request, cookieName, false);
}
/**
* @Description: 得到Cookie的值
*/
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的值
*/
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的值 不设置生效时间默认浏览器关闭即失效,也不编码
*/
public static void setCookie(HttpServletRequest request, HttpServletResponse response, String cookieName,
String cookieValue) {
setCookie(request, response, cookieName, cookieValue, -1);
}
/**
* @param request
* @param response
* @param cookieName
* @param cookieValue
* @param cookieMaxage
* @Description: 设置Cookie的值 在指定时间内生效,但不编码
*/
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信息
*/
public static void setCookie(HttpServletRequest request, HttpServletResponse response, String cookieName,
String cookieValue, boolean isEncode) {
setCookie(request, response, cookieName, cookieValue, -1, isEncode);
}
/**
* @Description: 设置Cookie的值 在指定时间内生效, 编码参数
*/
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的值 在指定时间内生效, 编码参数(指定编码)
*/
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域名
*/
public static void deleteCookie(HttpServletRequest request, HttpServletResponse response,
String cookieName) {
doSetCookie(request, response, cookieName, null, -1, false);
}
/**
* @Description: 设置Cookie的值,并使其在指定时间内生效
*/
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的值,并使其在指定时间内生效
*/
private static 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 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的域名
*/
private static String getDomainName(HttpServletRequest request) {
String domainName = null;
String serverName = request.getRequestURL().toString();
if (serverName == null || serverName.equals("")) {
domainName = "";
} else {
serverName = serverName.toLowerCase();
serverName = serverName.substring(7);
final int end = serverName.indexOf("/");
serverName = serverName.substring(0, end);
if (serverName.indexOf(":") > 0) {
String[] ary = serverName.split("\\:");
s
没有合适的资源?快使用搜索试试~ 我知道了~
【花艺电商项目】技术与功能的完美结合
共1116个文件
jpg:788个
png:90个
html:58个
0 下载量 199 浏览量
2024-01-08
15:17:36
上传
评论
收藏 26.49MB ZIP 举报
温馨提示
【花艺电商项目】技术与功能的完美结合
资源推荐
资源详情
资源评论
收起资源包目录
【花艺电商项目】技术与功能的完美结合 (1116个子文件)
OrderController.class 8KB
MySQLGenerator.class 8KB
CartController.class 7KB
CookieUtils.class 7KB
RedisServiceImpl.class 6KB
UserServiceImpl.class 5KB
JsonResponseBody.class 5KB
CartItemVo.class 4KB
AlipayConfig.class 4KB
Order.class 3KB
Goods.class 3KB
User.class 2KB
UserController.class 2KB
UserArgumentResolver.class 2KB
GlobalExceptionHandler.class 2KB
OrderItem.class 2KB
MD5Utils.class 2KB
JsonResponseStatus.class 2KB
PageController.class 2KB
UserVo.class 2KB
DictData.class 2KB
DictType.class 2KB
BusinessException.class 2KB
RedisConfig.class 2KB
IsMobileConstraintValidator.class 2KB
OrderVo.class 2KB
GoodsController.class 1KB
GoodsServiceImpl.class 1KB
WebConfig.class 1KB
IRedisService.class 1KB
IsMobile.class 871B
FlowerartApplication.class 827B
OrderItemServiceImpl.class 761B
DictTypeServiceImpl.class 754B
DictDataServiceImpl.class 754B
Constants.class 749B
OrderServiceImpl.class 733B
GoodsMapper.class 716B
IUserService.class 684B
FlowerartApplicationTests.class 558B
OrderItemController.class 542B
DictDataController.class 538B
DictTypeController.class 538B
IGoodsService.class 515B
OrderItemMapper.class 413B
DictTypeMapper.class 410B
DictDataMapper.class 410B
OrderMapper.class 401B
UserMapper.class 398B
IOrderItemService.class 340B
IDictDataService.class 337B
IDictTypeService.class 337B
IOrderService.class 328B
proList.css 15KB
proList.css 15KB
myorder.css 9KB
myorder.css 9KB
public.css 7KB
public.css 7KB
index.css 5KB
index.css 5KB
mygrxx.css 5KB
mygrxx.css 5KB
mygxin.css 4KB
mygxin.css 4KB
login.css 2KB
login.css 2KB
forget.css 1KB
forget.css 1KB
idea.css 897B
idea.css 897B
Thumbs.db 473KB
Thumbs.db 473KB
Thumbs.db 471KB
Thumbs.db 471KB
Thumbs.db 432KB
Thumbs.db 432KB
.gitignore 395B
.gitignore 190B
proDetail.html 13KB
proDetail.html 13KB
search.html 12KB
search.html 12KB
decoration.html 9KB
decoration.html 9KB
flowerDer.html 8KB
flowerDer.html 8KB
idea.html 7KB
idea.html 7KB
ok.html 7KB
ok.html 7KB
vase_proList.html 7KB
vase_proList.html 7KB
proList.html 7KB
proList.html 7KB
zbproList.html 7KB
zbproList.html 7KB
bzproList.html 7KB
bzproList.html 7KB
myorderq.html 7KB
共 1116 条
- 1
- 2
- 3
- 4
- 5
- 6
- 12
资源评论
云小君
- 粉丝: 832
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功