java 获取cookies
我是把保存读取写在工具类里面,优化cookie的时候就在工具类优化就好了,其实原理就那几行,主要就是在response写入cookie,resp.addCookie(new Cookie(key,value));这个代码那里都可以写,只要你拿的到response就可以了。
public class CookieUtil {/** * 保存Cookies * @param response * @param key * @param value * @param time * @param ip * @return */ public static HttpServletResponse setCookie(HttpServletResponse response, String key, String value, int time,String ip) {// new一个Cookie对象,键值对为参数 Cookie cookie = new Cookie(key, value); // tomcat下多应用共享 cookie.setPath("/"); //cookie.setDomain(ip); // 如果cookie的值中含有中文时,需要对cookie进行编码,不然会产生乱码. try {URLEncoder.encode(value, "utf-8"); } catch (UnsupportedEncodingException e) {e.printStackTrace(); }//秒为单位 cookie.setMaxAge(time); // 将Cookie添加到Response中,使之生效 response.addCookie(cookie); // addCookie后,如果已经存在相同名字的cookie,则最新的覆盖旧的cookie return response; }/** * 将cookie封装到Map里面 * @param request * @return */ private static Map<String, Cookie> ReadCookieMap(HttpServletRequest request) {Map<String, Cookie> cookieMap = new HashMap<String, Cookie>(); Cookie[] cookies = request.getCookies(); if (null != cookies) {for (Cookie cookie : cookies) {cookieMap.put(cookie.getName(), cookie); }}return cookieMap; }/** * 根据名字获取cookie * * @param request * @param name * cookie名字 * @return */ public static Cookie getCookieByName(HttpServletRequest request, String name) {Map<String, Cookie> cookieMap = ReadCookieMap(request); if (cookieMap.containsKey(name)) {Cookie cookie = (Cookie) cookieMap.get(name); return cookie; } else {return null; }}/** * 删除无效cookie * @param request * @param response * @param deleteKey * @throws NullPointerException */ private void delectCookieByName(HttpServletRequest request, HttpServletResponse response,String deleteKey) throws NullPointerException {Map<String, Cookie> cookieMap = ReadCookieMap(request); for (String key : cookieMap.keySet()) {if (key == deleteKey && key.equals(deleteKey)) {Cookie cookie = cookieMap.get(key); cookie.setMaxAge(0);//设置cookie有效时间为0 cookie.setPath("/");//不设置存储路径 response.addCookie(cookie); }}} }
写入方式:(调用工具类接口传参就完事了)
//将userId,tiken存入cookie CookieUtil.setCookie(response,"userId",userSession.getUser().getId().toString(),1800,userSession.getIp());
读取cookie有3种方式,反正我现在只知道3种:
//1.获取的是数组类型的cookie Cookie[] cookies=request.getCookies(); //循环或者这么取都行 String cookie = request.getCookies()[0].getValue(); //2.使用自己封装好的的工具类 CookieUtil.getCookieByName(request,"userId");
3.如果你是spring boot,在需要使用cookie的方法下面使用注解@CookieValue,userId自动获取,name要对的上哦,完事!
@RequestMapping(value = "/isStore",method = RequestMethod.GET) public ResponseEntity<ErrorMessageBag> isStore(@CookieValue(value = "userId")String userId){
java 获取cookies相关推荐
- Java 获取当前时间之后的第一个周几,java获取当前日期的下一个周几
Java 获取当前时间之后的第一个周几,java获取当前日期的下一个周几 //获得入参的日期 Calendar cd = Calendar.getInstance(); cd.setTime(date ...
- Java获取照片的Exif信息,并解析GPS
Java获取照片的Exif信息,并解析GPS 1. 效果图 2. 什么是Exif? 3. 源代码 参考 ❤️ 这篇博客将介绍什么EXIF,以及如何用Java语言读取Exif信息,并转换经纬度为位置信息 ...
- java 获取已有字体,java获取本机全部可用字体
java获取本机所有可用字体 //just for fun,那个28个字母的函数满满都是恶心 import java.awt.GraphicsEnvironment ; class Tester { ...
- Java 查看文件绝对路径,JAVA获取文件绝对路径的方法
本文实例讲述了JAVA获取文件绝对路径的方法.分享给大家供大家参考.具体实现方法如下: /** * 获取一个类的class文件所在的绝对路径. 这个类可以是JDK自身的类,也可以是用户自定义的类,或者 ...
- JAVA获取资源的方法
类名.class=对象.getClass() 获得该类的Class对象 java获取当前工作路径System.getProperty("user.dir"); java获取类所在路 ...
- java获取当前路径
java获取当前路径时间 1.利用System.getProperty()函数获取当前路径: System.out.println(System.getProperty("user.dir& ...
- Java 获取操作系统名字、系统版本、cpu信息
Java 获取操作系统名字.系统版本.cpu信息 System.getProperty("os.name");//得到操作系统名字 System.getProperty(" ...
- Java获取数据库表的字段信息,及如何将ResultSet转为json
为什么80%的码农都做不了架构师?>>> 一.Java获取数据库表的各个字段的相关信息 在某些开发情景中,需要获取数据库中表的各个字段的相关信息,如字段名,字段类型,字段大小等 ...
- 通过JAVA获取优酷、土豆、酷6、6间房等视频
为什么80%的码农都做不了架构师?>>> 通过JAVA获取优酷.土豆.酷6.6间房.56视频,现在很多社会网站都有这个功能,用户输入优酷.土豆.酷6.6间房.56视频地址后,能 ...
最新文章
- PHP MVC框架核心类
- 不用面部识别?亚马逊准备推出人手支付,0.3秒刷手支付
- iview选择月份 月初月末 时间戳格式
- 动态调整线程池_调整线程池的重要性
- Problem B: 结构体---职工信息结构体
- andorid 回调的理解
- GlideDemo【Glide3.7.0版本的简单使用以及圆角功能】
- 今天是有纪念意义的一天--中国13亿人口日
- Ali-Tomcat 安装
- 新概念英语第一册1-144课(转)
- 篮球比赛表式计时器_篮球比赛24秒倒计时器的设计(word文档)
- Python-----并发,并行,进程,多进程
- 2022年中国工业互联网安全大赛北京市选拔赛暨全国线上预选赛MISC-工控文件Writeup
- MYSQL数据库报错 1055
- 盈利“晴空”下,唯品会拨不开的“乌云”
- 【Json转换为实体类】
- 大学生生涯职业规划计算机专业,大学生职业生涯规划书计算机专业范文
- 高斯朴素贝叶斯分类的原理解释和手写代码实现
- 国产数据库岁末大盘点
- 针式怎么修改打印机服务器属性,针式打印机设置,小编教你针式打印机怎么设置纸张大小...
热门文章
- 操作记录表怎么设计_驻马店钢结构楼梯设计公司
- MySQL密码重置(windows版本)
- vue 封装js常用工具函数包
- 两个tplink路由器有线桥接_TP-Link路由器有线桥接
- Linux网络编程——字节序与网络字节序
- 深入学习java非阻塞IO
- 抽象工厂模式实现简单的kfc点餐
- 王者荣耀s23服务器维护,王者荣耀s23更新不了是什么原因 王者荣耀s23不能更新怎么解决...
- 闭着眼睛也要会打的【数据的输入和输出有几道练习题】---- HDU1089-1096
- python时间计算_python 计算一年内的所有周的具体日期详解