code:

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import javax.annotation.PostConstruct;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; /**
* Created by qhong on 2018/10/15 15:46
**/
@Component
public class CookieUtils { public static final int COOKIE_MAX_AGE = 7 * 24 * 3600;
public static final int COOKIE_HALF_HOUR = 30 * 60; private static HttpServletResponse response; @Autowired
private HttpServletResponse response2; private static HttpServletRequest request; @Autowired
private HttpServletRequest request2; @PostConstruct
public void beforeInit() {
request=request2;
response=response2;
} /**
* 根据Cookie名称得到Cookie对象,不存在该对象则返回Null
*
* @param request
* @param name
* @return
*/
public static Cookie getCookie(String name) {
Cookie[] cookies = request.getCookies();
if (cookies==null||cookies.length<1) {
return null;
}
Cookie cookie = null;
for (Cookie c : cookies) {
if (name.equals(c.getName())) {
cookie = c;
break;
}
}
return cookie;
} /**
* 根据Cookie名称直接得到Cookie值
*
* @param request
* @param name
* @return
*/
public static String getCookieValue(String name) {
Cookie cookie = getCookie(name);
if(cookie != null){
return cookie.getValue();
}
return null;
} /**
* 移除cookie
* @param request
* @param response
* @param name 这个是名称,不是值
*/
public static void removeCookie(String name) {
if (null == name) {
return;
}
Cookie cookie = getCookie(name);
if(null != cookie){
cookie.setPath("/");
cookie.setValue("");
cookie.setMaxAge(0);
response.addCookie(cookie);
}
} /**
* 添加一条新的Cookie,可以指定过期时间(单位:秒)
*
* @param response
* @param name
* @param value
* @param maxValue
*/
public static void setCookie(String name,
String value, int maxValue) {
if (StringUtils.isBlank(name)) {
return;
}
if (null == value) {
value = "";
}
Cookie cookie = new Cookie(name, value);
cookie.setPath("/");
if (maxValue != 0) {
cookie.setMaxAge(maxValue);
} else {
cookie.setMaxAge(COOKIE_HALF_HOUR);
}
response.addCookie(cookie);
try {
response.flushBuffer();
} catch (IOException e) {
e.printStackTrace();
}
} /**
* 添加一条新的Cookie,默认30分钟过期时间
*
* @param response
* @param name
* @param value
*/
public static void setCookie(String name,
String value) {
setCookie(name, value, COOKIE_HALF_HOUR);
} /**
* 将cookie封装到Map里面
* @param request
* @return
*/
public static Map<String,Cookie> getCookieMap(){
Map<String,Cookie> cookieMap = new HashMap<>();
Cookie[] cookies = request.getCookies();
if(cookies!=null&&cookies.length>1){
for(Cookie cookie : cookies){
cookieMap.put(cookie.getName(), cookie);
}
}
return cookieMap;
} }

SpringBoot cookie工具类的更多相关文章

  1. java cookie 工具类

    package com.xxx.xxx.xxx.xxx; import java.net.URLDecoder; import java.net.URLEncoder; import javax.se ...

  2. cookie工具类,解决servlet3.0以前不能添加httpOnly属性的问题

    最近在解决XSS注入的问题,由于使用的servlet版本是2.5,不支持httpOnly的属性,故做了个工具类来实现cookie的httpOnly的功能.全类如下: /** * cookie工具类,解 ...

  3. Cookie工具类

    import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet ...

  4. Cookie工具类 - CookieUtil.java

    Cookie工具类,提供Cookie的创建.获取.删除方法. 源码如下:(点击下载 -CookieUtil.java ) import javax.servlet.http.Cookie; impor ...

  5. Java Cookie工具类

    1.Cookie跨域 Cookie不能跨顶级域名访问,但是二级域名可以共享Cookie,所以要实现跨域,有一定的局限性. 2.代码 package com.DingYu.Cookie; import ...

  6. 180425、cookie工具类

    package com.thinkgem.jeesite.common.utils; import java.io.UnsupportedEncodingException; import java. ...

  7. Java Cookie工具类,Java CookieUtils 工具类,Java如何增加Cookie

    Java Cookie工具类,Java CookieUtils 工具类,Java如何增加Cookie >>>>>>>>>>>>& ...

  8. Cookie 工具类

    一.导入 jar 包 <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet ...

  9. Cookie工具类(获取cookie,设置cookie)

    import java.io.UnsupportedEncodingException; import java.net.URLDecoder;import java.net.URLEncoder; ...

随机推荐

  1. PHP语句函数

    运算符 +.-.*./.++.--.+=.-=.% 字符串拼接用.      js里面用+拼接 逻辑运算符 and &&  .  or ||   . ! 错误运算符 @(可以抑制错误) ...

  2. PHP运行脚本

    PHP运行脚本 php.exe -f "php文件" php.exe -r "php代码" 例如:在cmd中 C:\Users\Administrator.SK ...

  3. I/O流的概念和流类库的结构

    概念: 程序的输入指的是从输入文件将数据传送给程序,程序的输出指的是从程序将数据传送给输出文件. C++输入输出包含以下三个方面的内容: 1.对系统指定的标准设备的输入和输出.即从键盘输入数据,输出到 ...

  4. asp.net GridView增加删除功能

    protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)    {        string id ...

  5. py3中reduce

    前因 因为 Guido 先生讨厌 reduce.(Because Guido hates it. ) 详细过程请翻阅原文:http://www.artima.com/forums/flat.jsp?f ...

  6. 基于jquery、bootstrap的数据验证插件bootstrapValidator使用

    实时验证用户名是否存在,密码不能和用户名相同,两次密码需要相同,提交之后需要验证返回值: <form id="defaultForm" role="form&quo ...

  7. 在centos上搭建Git服务器

    第一步:先安装一些相关依赖库和编译工具 yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel yum in ...

  8. EditPlus5.0注册码

    EditPlus5.0注册码 注册名 Vovan 注册码 3AG46-JJ48E-CEACC-8E6EW-ECUAW EditPlus3.x注册码 EditPlus注册码生成器链接 http://ww ...

  9. Struts2 概述

    1. struts2应用在javaee三层结构中web层框架 2. struts2框架在struts1和webwork基础之上的发展全新的框架 3.struts2 解决的问题: 用户管理的crud操作 ...

  10. 计算概论(A)/基础编程练习2(8题)/5:点和正方形的关系

    #include<stdio.h> #include<math.h> int main() { // 输入坐标 float x, y; while(scanf("%f ...