cookie知识点
1.springmvc框架中,cookie例子
jsp:
<%--
Created by IntelliJ IDEA.
User: 44262
Date: 2019/2/28
Time: 18:49
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title> </head>
<body>
<h1>增加</h1>
<form action="/Common/addCookie.do"> 用户名:<input type="text" name="uname">
<br/>
值:<input type="text" name="value">
<input type="submit" value="提交"/> </form>
<h1>修改</h1>
<form action="/Common/editCookie.do"> 用户名:<input type="text" name="uname">
<br/>
值:<input type="text" name="value">
<input type="submit" value="提交"/> </form> <h1>删除</h1>
<form action="/Common/delCookie.do"> 用户名:<input type="text" name="uname">
<br/>
<input type="submit" value="提交"/> </form> <h1>查询</h1>
<a href="${pageContext.request.contextPath }/Common/showCookies.do">查询</a><br> </body> <scipt> </scipt>
</html>
后台:
@RequestMapping("/showCookies.do")
@ResponseBody
public void showCookies(HttpServletRequest request, HttpServletResponse response) throws IOException {
Cookie[] cookies = request.getCookies();//这样便可以获取一个cookie数组
if (null == cookies) {
System.out.println("没有cookie=========");
} else {
for (Cookie cookie : cookies) {
System.out.println("name:" + cookie.getName() + ",value:" + cookie.getValue());
}
}
}
@RequestMapping(value = "/addCookie.do", produces = "application/json; charset=utf-8")
public void addCookie(HttpServletResponse response, String uname, String value) throws IOException {
Cookie cookie = new Cookie(uname.trim(), value.trim());
cookie.setMaxAge(30 * 60);// 设置为30min
cookie.setPath("/");//可在同一应用服务器内共享cookie的方法
System.out.println("已添加===============");
response.addCookie(cookie);
}
//注意一、修改、删除Cookie时,新建的Cookie除value、maxAge之外的所有属性,例如name、path、domain等,都要与原Cookie完全一样。否则,浏览器将视为两个不同的Cookie不予覆盖,导致修改、删除失败。
@RequestMapping(value = "/editCookie.do", produces = "application/json; charset=utf-8")
public void editCookie(HttpServletRequest request, HttpServletResponse response, String uname, String value) throws IOException {
Cookie[] cookies = request.getCookies();
if (null == cookies) {
System.out.println("没有cookie==============");
} else {
for (Cookie cookie : cookies) {
if (cookie.getName().equals(uname)) {
System.out.println("原值为:" + cookie.getValue());
cookie.setValue(value);
cookie.setPath("/");
cookie.setMaxAge(30 * 60);// 设置为30min
System.out.println("被修改的cookie名字为:" + cookie.getName() + ",新值为:" + cookie.getValue());
response.addCookie(cookie);
break;
}
}
}
}
@RequestMapping(value = "/delCookie.do", produces = "application/json; charset=utf-8")
public void delCookie(HttpServletRequest request, HttpServletResponse response, String uname) throws IOException {
Cookie[] cookies = request.getCookies();
if (null == cookies) {
System.out.println("没有cookie==============");
} else {
for (Cookie cookie : cookies) {
if (cookie.getName().equals(uname)) {
//找到一样的cookie设置value的值 再覆盖
cookie.setValue(null);
cookie.setMaxAge(0);// 立即销毁cookie
cookie.setPath("/");
System.out.println("被删除的cookie名字为:"+cookie.getName());
response.addCookie(cookie);
break;
}
}
}
}
2.@CookieValue的作用
@RequestMapping("/testCookie")
public String testCookie(@CookieValue(value="name",required=false) String name,
@CookieValue(value="age",required=false) Integer age){
System.out.println(name+","+age);
return "hello";
}
3.根据时间封装和删除cookie
//设置
*/function setCookie(key, value, iDay) {
var oDate = new Date();
oDate.setDate(oDate.getDate() + iDay);
document.cookie = key + '=' + value + ';expires=' + oDate;
}
//移除
function removeCookie(key) {
setCookie(key, '', -1);//这里只需要把Cookie保质期退回一天便可以删除}function getCookie(key) {
var cookieArr = document.cookie.split('; '); for(var i = 0; i < cookieArr.length; i++) {
var arr = cookieArr[i].split('='); if(arr[0] === key) {
return arr[1];
}
} return false;
}
cookie知识点的更多相关文章
- Cookie 知识点再整理
1. Cookie 是存储在客户端 内存 或者 硬盘(例如火狐把 Cookie 存储在 C:\Documents and Settings\用户名\Application Data\Mozilla\ ...
- Cookie知识点小结
问题是什么?有哪些技术?如何解决? 1. Cookie 1)完成回话跟踪的一种机制:采用的是在客户端保存Http状态信息的方案 2)Cookie是在浏览器访问WEB服务器的某个资源时,由WEB服务器在 ...
- Cookie知识点总结
Cookie机制是采用客户端保持Http状态信息的方案. Cookie是在浏览器访问web服务器的某个资源的时候,由web服务器在http响应消息头中附带给浏览器的一个小文本文件. 一旦web服务器保 ...
- session和cookie知识点总结
cookie小结:1.cookie是在服务端创建2.cooki是保存在浏览器这一端3.cookie的生命周期可以通过 cookie.setMaxAge(2000);(如果不设置生命周期,cookie的 ...
- cookie 知识点
cookie失效是由浏览器实现的,根据时间来控制,服务器端并不做cookie是否失效的验证. 某个cookie失效了浏览器发送请求时便不会带上它,服务器端自然就没有这个cookie了,所以对于服务器来 ...
- cookie知识点概述
cookie是什么 这个讲起来很简单,了解http的同学,肯定知道,http是一个不保存状态的协议,什么叫不保存状态,就是一个服务器是不清楚是不是同一个浏览器在访问他,在cookie之前,有另外的技术 ...
- cookie知识点简点
cookie几大作用: 1.保持用户登陆状态 2.跟踪用户行为 3.制定页面 4.创建购物车 cookie缺点: 1. 可能被禁用 2.可能被删除:cookie是一个文件,easy被用户删除 3.安全 ...
- (六)Cookie 知识点总结 (来自那些年的笔记)
如果你想要转载话,可不可以不要删掉下面的 作者信息 呀!: 作者:淮左白衣 写于 2018年4月18日18:47:41 来源笔者自己之前学javaWeb的时候,写的笔记 : 目录 如果你想要转载话,可 ...
- js与cookie的domain和path之间的关系
1.前言 使用javascript操作cookie我们都经常使用,对cookie不是很了解的话可以看下这篇帖子[javascript操作cookie](http://www.cnblogs.com/D ...
随机推荐
- 复制MIFARE Classic卡
Mifare Classic 1K智能卡介绍及nfc-tools的使用 [原创]RFID安全之——ACR122U菜鸟初体验-『智能设备』-看雪安全论坛 复制MIFARE Classic小区门禁卡记录 ...
- bzoj 2753 [SCOI 2012] 滑雪与时间胶囊 - Prim
题目传送门 传送点I 传送点II 题目大意 给定一个有$n$个点$m$条边的图,每个点有一个高度$h_{i}$,能从$u$经过一条边到达$v$,当且仅当存在一条边是$(u, v)$或$(v, u)$, ...
- 【python001-IDLE】
一.python的下载地址:http://www.python.org 二. python的注释:# 三.>>> print("i love python")i ...
- ODAC(V9.5.15) 学习笔记(十三)TOraMetaData
通过TOraMetaData控件获取Oracle数据库对象信息,首先需要设置MetaDataKind属性,然后设置Restrictions属性设置条件,最后通过激活数据集获取信息,演示代码如下: Me ...
- Python3基础 iter+next 进行迭代时超出了范围 产生StopIteration异常
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- MongoDB NoSQL 常用指令
查询 日期区间 db.<collections>.find({"service_name":"xxx"}).sort({ update_time:- ...
- 再谈fedora下的音乐和视频播放器的安装
rpm包就相当于windows下的exe,已经是编译后的二进制代码,可以使用rpm命令或dnf install ???.rpm来安装 lnux下软件的安装跟windows不同, 后者要到处去找, 要做 ...
- LabVIEW编程实例:如何通过TCP协议进行数据通信
对于网络通信来说,LabVIEW平台本身提供了多种方法加以实现,如可以通过TCP协议.UDP协议.DataSocket技术.甚至远程面板通信技术等方式进行通信. 下面通过一个简单的例子,演示在LabV ...
- SpringBoot 整合使用dubbo
这里主要是按照teaey作者的spring-boot-starter-dubbo框架进行一些变化的使用 依赖包: <dependency> <groupId>com.aliba ...
- 程序重启RocketMQ消息重复消费
最近在调试RocketMQ消息发送与消费的Demo时,发现一个问题:只要重启程序,RocketMQ消息就会重复消费. 那么这是什么原因导致的,又该如何解决呢? 经过一番排查,发现程序使用的Rocket ...