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;
                }
            }
        }
    }
}
目录
相关文章
|
3月前
|
JavaScript Java 大数据
基于JavaWeb的销售管理系统设计系统
本系统基于Java、MySQL、Spring Boot与Vue.js技术,构建高效、可扩展的销售管理平台,实现客户、订单、数据可视化等全流程自动化管理,提升企业运营效率与决策能力。
|
5月前
|
SQL 前端开发 Java
JavaWeb 学习日记案例详解及 javaweb 完整项目案例实战指南
本文介绍了一个基于Spring Boot的JavaWeb企业员工管理系统完整案例,涵盖部门管理、员工管理、登录、异常处理、事务管理及AOP等核心功能实现,结合CSDN相关技术文章,提供详细技术方案与应用实例,适合JavaWeb开发者学习与参考。
296 0
|
存储 前端开发 JavaScript
基于JavaWeb实现停车场管理系统
基于JavaWeb实现停车场管理系统
357 1
|
前端开发 JavaScript Java
图书借阅管理平台|基于JavaWeb实现图书借阅系统
图书借阅管理平台|基于JavaWeb实现图书借阅系统
402 1
|
11月前
|
前端开发 Java 数据库连接
【潜意识Java】深度解读JavaWeb开发在Java学习中的重要性
深度解读JavaWeb开发在Java学习中的重要性
229 4
|
前端开发 Java 关系型数据库
JavaWeb开发简介
JavaWeb开发简介
189 0
|
设计模式 Java 关系型数据库
【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码解析
本文是“Java学习路线”专栏的导航文章,目标是为Java初学者和初中高级工程师提供一套完整的Java学习路线。
909 37
|
缓存 前端开发 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版)
|
前端开发 Java 应用服务中间件
Javaweb学习
【10月更文挑战第1天】Javaweb学习
128 2
|
安全 Java Android开发
JavaWeb解压缩漏洞之ZipSlip与Zip炸弹
JavaWeb解压缩漏洞之ZipSlip与Zip炸弹
571 5