1. package com.test;
  2.  
  3. import org.apache.commons.lang.StringUtils;
  4. import org.springframework.util.Assert;
  5.  
  6. import javax.servlet.http.Cookie;
  7. import javax.servlet.http.HttpServletRequest;
  8. import javax.servlet.http.HttpServletResponse;
  9.  
  10. /**
  11. * Cookie 辅助类
  12. */
  13. public class CookieUtils {
  14.  
  15. /**
  16. * 根据cookie名称获得cookie
  17. * @param request
  18. * @param name cookie的名称
  19. * @return
  20. */
  21. public static Cookie getCookie(HttpServletRequest request, String name) {
  22. Assert.notNull(request);
  23. Cookie[] cookies = request.getCookies();
  24. if (cookies != null && cookies.length > 0) {
  25. for (Cookie c : cookies) {
  26. if (c.getName().equals(name)) {
  27. return c;
  28. }
  29. }
  30. }
  31. return null;
  32. }
  33.  
  34. /**
  35. * 保存cookie 保存在根目录下
  36. * @param request
  37. * @param response
  38. * @param name cookie名称
  39. * @param value cookie的值
  40. * @param expiry 过期时间(可以为空,单位:秒)
  41. * @param domain 域名(可以为空)
  42. * @return
  43. */
  44. public static Cookie addCookie(HttpServletRequest request,
  45. HttpServletResponse response, String name, String value,
  46. Integer expiry, String domain) {
  47. Cookie cookie = new Cookie(name, value);
  48. if (expiry != null) {
  49. cookie.setMaxAge(expiry);
  50. }
  51. if (StringUtils.isNotBlank(domain)) {
  52. cookie.setDomain(domain);
  53. }
  54. String ctx = request.getContextPath();
  55. cookie.setPath(StringUtils.isBlank(ctx) ? "/" : ctx);
  56. response.addCookie(cookie);
  57. return cookie;
  58. }
  59.  
  60. /**
  61. * 清除cookie
  62. * @param request
  63. * @param response
  64. * @param name cookie名称
  65. * @param domain
  66. */
  67. public static void cancleCookie(HttpServletRequest request,
  68. HttpServletResponse response, String name, String domain) {
  69. Cookie cookie = new Cookie(name, "");
  70. cookie.setMaxAge(0);
  71. String ctx = request.getContextPath();
  72. cookie.setPath(StringUtils.isBlank(ctx) ? "/" : ctx);
  73. if (StringUtils.isNotBlank(domain)) {
  74. cookie.setDomain(domain);
  75. }
  76. response.addCookie(cookie);
  77. }
  78. }

JAVAWEB使用保存cookie、删除cookie、获取cookie工具类的更多相关文章

  1. Spring获取bean工具类,可用于在线程里面获取bean

    Spring获取bean工具类,可用于在线程里面获取bean import java.util.Locale; import org.springframework.beans.BeansExcept ...

  2. 系统获取 IP 工具类

    系统获取 IP 工具类 import java.net.Inet4Address; import java.net.InetAddress; import java.net.NetworkInterf ...

  3. js封装Cookie操作 js 获取cookie js 设置cookie js 删除cookie

    每天学习一点点 编程PDF电子书.视频教程免费下载:http://www.shitanlife.com/code var CookieUtil = { // 设置cookie set : functi ...

  4. C# 操作Session、Cookie,Url 编码解码工具类WebHelper

    using System; using System.Collections.Generic; using System.IO; using System.Net; using System.Text ...

  5. Java 获取IP工具类、Vo类整理记录

    前言 日常开发中,获取ip是常用的功能,本文记录如何在Java中获取本机外网ip.地理位置,访问用户的外网ip.地理位置,以及指定外网ip的地理位置: 代码编写 1.获取访问用户外网ip,我们从访问者 ...

  6. 获取图片工具类:BitmapUtil

    package com.example.administrator.filemanager.utils;import android.content.Context;import android.gr ...

  7. 单位换算(格式化十进制数-B),获取时间工具类CommenUtil

    package com.example.administrator.filemanager.utils;import java.text.DecimalFormat;import java.text. ...

  8. java连接外部接口获取数据工具类

    package com.yqzj.util; import org.apache.log4j.LogManager;import org.apache.log4j.Logger; import jav ...

  9. java从Swagger Api接口获取数据工具类

  10. jquery 设置cookie、删除cookie、获取cookie

    1.引入jquery.js <script src="//cdn.bootcss.com/jquery/1.12.4/jquery.js"></script> ...

随机推荐

  1. Codeforces 1500D - Tiles for Bathroom(贪心+队列)

    Codeforces 题面传送门 & 洛谷题面传送门 首先先讲一发我的 \(n^2q\log n\) 的做法,虽然没有付诸实现并且我也深知它常数巨大过不去,但是我还是决定讲一讲(大雾 考虑设 ...

  2. SP20173 DIVCNT2 - Counting Divisors (square)

    Refer 主要思路参考了 Command_block 的题解. Description 给定 \(n\)(\(n\le 10^{10}\)),求 \[\sum_{i=1}^n\sigma_0(i^2 ...

  3. 什么是总线、总线的类型、局部总线、局部总线类型和什么是接口方式?什么是IDE?什么是SCSI?

    在安装电脑系统时,进行内核配置时涉及到各种总线类型,有必要了解一下什么是总线.总线的类型.局部总线.局部总线类型和接口方式. 1)总线总线是一组通信线.在机器内部, 各部件通过总线连接; 对于外部设备 ...

  4. python 多行对应元素求和

    今天有个统计需求,需要对应的元素的列求和,文件示例如下: 1 ID1 0 2 7 2 ID2 1 5 6 3 ID3 2 2 6 4 ID4 1 6 0 5 ID2 3 8 3 6 ID2 0 8 3 ...

  5. SpringCloud微服务实战——搭建企业级开发框架(三十一):自定义MybatisPlus代码生成器实现前后端代码自动生成

      理想的情况下,代码生成可以节省很多重复且没有技术含量的工作量,并且代码生成可以按照统一的代码规范和格式来生成代码,给日常的代码开发提供很大的帮助.但是,代码生成也有其局限性,当牵涉到复杂的业务逻辑 ...

  6. 用户体验再升级!Erda 1.2 版本正式发布

    来源|尔达 Erda 公众号 Erda v1.2 Changelog: https://github.com/erda-project/erda/blob/master/CHANGELOG/CHANG ...

  7. HTML5 之 FileReader 的使用 (二) (网页上图片拖拽并且预显示可在这里学到) [转载]

    转载至 : http://www.360doc.com/content/14/0214/18/1457948_352511645.shtml FileReader 资料(英文): https://de ...

  8. 编程之美Q1

    题目 和数书页有点类似,就直接数吧 #include<iostream> using namespace std; class q1 { public: size_t func(size_ ...

  9. 如何从 100 亿 URL 中找出相同的 URL?

    题目描述 给定 a.b 两个文件,各存放 50 亿个 URL,每个 URL 各占 64B,内存限制是 4G.请找出 a.b 两个文件共同的 URL. 解答思路 每个 URL 占 64B,那么 50 亿 ...

  10. Output of C++ Program | Set 11

    Predict the output of following C++ programs. Question 1 1 #include<iostream> 2 using namespac ...