JavaWeb - Util 之 CookieUtil

简介: JavaWeb - Util 之 CookieUtil
packagecom.mmall.util;
importlombok.extern.slf4j.Slf4j;
importorg.apache.commons.lang.StringUtils;
importjavax.servlet.http.Cookie;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
@Slf4jpublicclassCookieUtil {
privatefinalstaticStringCOOKIE_DOMAIN=".happymmall.com";
privatefinalstaticStringCOOKIE_NAME="mmall_login_token";
publicstaticStringreadLoginToken(HttpServletRequestrequest){
Cookie[] cks=request.getCookies();
if(cks!=null){
for(Cookieck : cks){
log.info("read cookieName:{},cookieValue:{}",ck.getName(),ck.getValue());
if(StringUtils.equals(ck.getName(),COOKIE_NAME)){
log.info("return cookieName:{},cookieValue:{}",ck.getName(),ck.getValue());
returnck.getValue();
                }
            }
        }
returnnull;
    }
//X:domain=".happymmall.com"//a:A.happymmall.com            cookie:domain=A.happymmall.com;path="/"//b:B.happymmall.com            cookie:domain=B.happymmall.com;path="/"//c:A.happymmall.com/test/cc    cookie:domain=A.happymmall.com;path="/test/cc"//d:A.happymmall.com/test/dd    cookie:domain=A.happymmall.com;path="/test/dd"//e:A.happymmall.com/test       cookie:domain=A.happymmall.com;path="/test"publicstaticvoidwriteLoginToken(HttpServletResponseresponse,Stringtoken){
Cookieck=newCookie(COOKIE_NAME,token);
ck.setDomain(COOKIE_DOMAIN);
ck.setPath("/");//代表设置在根目录ck.setHttpOnly(true);
// 单位是秒。// setMaxAge() 设置值大于0, 将cookie存储于本地磁盘, 过期后删除// setMaxAge() 设置值小于0, cookie不会保存于本地, 浏览器会话结束后, 将会删除, 经过在Mac上的chorme测试, 需要结束进程后cookie才会从内存中删除// setMaxAge() 设置值等于0, 立即删除cookieck.setMaxAge(60*60*24*365);
log.info("write cookieName:{},cookieValue:{}",ck.getName(),ck.getValue());
response.addCookie(ck);
    }
publicstaticvoiddelLoginToken(HttpServletRequestrequest,HttpServletResponseresponse){
Cookie[] cks=request.getCookies();
if(cks!=null){
for(Cookieck : cks){
if(StringUtils.equals(ck.getName(),COOKIE_NAME)){
ck.setDomain(COOKIE_DOMAIN);
ck.setPath("/");
ck.setMaxAge(0); // 设置成0,代表删除此cookielog.info("del cookieName:{},cookieValue:{}",ck.getName(),ck.getValue());
response.addCookie(ck);
return;
                }
            }
        }
    }
}
目录
相关文章
|
6月前
|
存储 前端开发 JavaScript
基于JavaWeb实现停车场管理系统
基于JavaWeb实现停车场管理系统
109 1
|
6月前
|
前端开发 JavaScript Java
图书借阅管理平台|基于JavaWeb实现图书借阅系统
图书借阅管理平台|基于JavaWeb实现图书借阅系统
140 1
|
3月前
|
设计模式 Java 关系型数据库
【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码解析
本文是“Java学习路线”专栏的导航文章,目标是为Java初学者和初中高级工程师提供一套完整的Java学习路线。
483 37
|
2月前
|
前端开发 Java 应用服务中间件
Javaweb学习
【10月更文挑战第1天】Javaweb学习
37 2
|
2月前
|
安全 Java Android开发
JavaWeb解压缩漏洞之ZipSlip与Zip炸弹
JavaWeb解压缩漏洞之ZipSlip与Zip炸弹
72 5
|
6月前
|
前端开发 Java 关系型数据库
JavaWeb开发简介
JavaWeb开发简介
65 0
|
3月前
|
缓存 前端开发 Java
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
Soring Boot的起步依赖、启动流程、自动装配、常用的注解、Spring MVC的执行流程、对MVC的理解、RestFull风格、为什么service层要写接口、MyBatis的缓存机制、$和#有什么区别、resultType和resultMap区别、cookie和session的区别是什么?session的工作原理
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
|
3月前
|
安全 Java Android开发
JavaWeb解压缩漏洞之ZipSlip与Zip炸弹
JavaWeb解压缩漏洞之ZipSlip与Zip炸弹
124 2
|
3月前
|
SQL JSON JavaScript
JavaWeb基础9——VUE,Element&整合Javaweb的商品管理系统
Vue 指令、生命周期、this和$、vue脚手架进行模块化开发/ElementUI框架、综合案例,element商品列表展示增删改查
JavaWeb基础9——VUE,Element&整合Javaweb的商品管理系统
|
6月前
|
SQL Java 数据库连接
JavaWeb Mapper代理开发
JavaWeb Mapper代理开发
下一篇
DataWorks