您的位置:首页 > 编程语言 > Java开发

Java操作Cookie实战+Cookie类源码分析(增删改查)

2018-05-24 16:27 141 查看
版权声明:原创内容,如需转载请联系作者。 https://blog.csdn.net/CrankZ/article/details/80434190

先看一下Java中Cookie类的源码,先来看一下有什么属性

// // cookie本身的属性 // cookie的信息由键/值对组成 // private String name; // 键 private String value; // 值 private String comment; // 注释,用来描述cookie的用途 private String domain; // 可访问cookie的域名,比如你想让a.site.com与b.site.com共享cookie,则需要把这个属性设置为*.site.com private int maxAge = -1; // cookie的有效时间 private String path; // 可访问cookie的路径,默认为Path为产生cookie时的路径,此时cookie只能被该路径以及子路径下的页面访问;可以将Path设置为/,使cookie可以被网站下所有页面访问。 private boolean secure; // 为true时只有HTTPS时才会生效,HTTP不会。默认为false private int version = 0; // cookie的版本,由cookie的创建者定义。 private boolean isHttpOnly = false; // HTTP-Only 意思是告之浏览器该 cookie 绝不能通过 JavaScript 的 document.cookie 属性访问。目的时阻止通过 JavaScript 发起的跨站脚本攻击 (XSS) 窃取 cookie 的行为。再来看一下Cookie类提供的方法,也都是对属性的操作


下面开始实战

1.增加cookie

/** * 增加cookie * * @param response */ @RequestMapping("/addCookie") public void addCookie(HttpServletResponse response) { Cookie cookie = new Cookie("foo", "bar"); response.addCookie(cookie); }访问:http://localhost:8080/addCookie

浏览器看一下,添加成功


2.读取Cookie

/** * 读取cookie * * @param request * @return */ @RequestMapping("/showCookie") public void showCookie(HttpServletRequest request) { Cookie[] cookies = request.getCookies(); if (cookies != null) { for (Cookie cookie : cookies) { String name = cookie.getName(); String value = cookie.getValue(); System.out.println("name:" + name + ",value:" + value); } } else { System.out.println("cookies is null"); } }访问:http://localhost:8080/showCookie


3.修改指定Cookie

/** * 修改Cookie * * @param request * @param response */ @RequestMapping("/editCookie") public void editCookie(HttpServletRequest request, HttpServletResponse response) { Cookie[] cookies = request.getCookies(); String name = "foo"; if (cookies != null) { for (Cookie cookie : cookies) { if (cookie.getName().equals(name)) { cookie.setValue("new_bar"); System.out.println("修改的name为" + cookie.getName() + "修改后的值为:" + cookie.getValue()); response.addCookie(cookie); } } } else { System.out.println("cookies is null"); } }

访问:http://localhost:8080/editCookie


4.删除Cookie

/** * 删除Cookie * * @param request * @param response */ @RequestMapping("/delCookie") public void delCookie(HttpServletRequest request, HttpServletResponse response) { Cookie[] cookies = request.getCookies(); String name = "foo"; if (cookies != null) { for (Cookie cookie : cookies) { if (cookie.getName().equals(name)) { cookie.setMaxAge(0); response.addCookie(cookie); System.out.println("删除成功"); break; } } } }浏览器看一下

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: