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知识点的更多相关文章

  1. Cookie 知识点再整理

    1. Cookie  是存储在客户端 内存 或者 硬盘(例如火狐把 Cookie 存储在 C:\Documents and Settings\用户名\Application Data\Mozilla\ ...

  2. Cookie知识点小结

    问题是什么?有哪些技术?如何解决? 1. Cookie 1)完成回话跟踪的一种机制:采用的是在客户端保存Http状态信息的方案 2)Cookie是在浏览器访问WEB服务器的某个资源时,由WEB服务器在 ...

  3. Cookie知识点总结

    Cookie机制是采用客户端保持Http状态信息的方案. Cookie是在浏览器访问web服务器的某个资源的时候,由web服务器在http响应消息头中附带给浏览器的一个小文本文件. 一旦web服务器保 ...

  4. session和cookie知识点总结

    cookie小结:1.cookie是在服务端创建2.cooki是保存在浏览器这一端3.cookie的生命周期可以通过 cookie.setMaxAge(2000);(如果不设置生命周期,cookie的 ...

  5. cookie 知识点

    cookie失效是由浏览器实现的,根据时间来控制,服务器端并不做cookie是否失效的验证. 某个cookie失效了浏览器发送请求时便不会带上它,服务器端自然就没有这个cookie了,所以对于服务器来 ...

  6. cookie知识点概述

    cookie是什么 这个讲起来很简单,了解http的同学,肯定知道,http是一个不保存状态的协议,什么叫不保存状态,就是一个服务器是不清楚是不是同一个浏览器在访问他,在cookie之前,有另外的技术 ...

  7. cookie知识点简点

    cookie几大作用: 1.保持用户登陆状态 2.跟踪用户行为 3.制定页面 4.创建购物车 cookie缺点: 1. 可能被禁用 2.可能被删除:cookie是一个文件,easy被用户删除 3.安全 ...

  8. (六)Cookie 知识点总结 (来自那些年的笔记)

    如果你想要转载话,可不可以不要删掉下面的 作者信息 呀!: 作者:淮左白衣 写于 2018年4月18日18:47:41 来源笔者自己之前学javaWeb的时候,写的笔记 : 目录 如果你想要转载话,可 ...

  9. js与cookie的domain和path之间的关系

    1.前言 使用javascript操作cookie我们都经常使用,对cookie不是很了解的话可以看下这篇帖子[javascript操作cookie](http://www.cnblogs.com/D ...

随机推荐

  1. 02: http

    1.1 http简介 1.什么是http 1. HTTP是一个客户端和服务器端请求和应答的标准(TCP) 2. 设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法 2.http报文格式 ...

  2. 07:vue定义路由

    1.1 定义路由 1.说明 1. 路由是单页面应用程序(SPA)的关键,Vue提供过来路由插件,使用这个路由就要安装这个插件 2. 安装: npm install vue-router 3. 依赖于v ...

  3. 在eclipse中, 如何快速输入(快捷键)System.out.println();

    1.快速输入(快捷键)System.out.println(); 首先输入sysout或syso,然后ALT+/ System.out.println(); 2.快速输入(快捷键)System.err ...

  4. maven的使用记录

    maven的使用记录 使用的版本为3.6.0. maven配置部署项目 在cmd命令行中切换到Maven项目的根目录,比如:D:/xxxwork/java/maven-test,然后执行命令:$ mv ...

  5. 一元二次方程解法的实现(Python)

    请定义一个函数quadratic(a, b, c),接收3个参数,返回一元二次方程: ax2 + bx + c = 0的两个解. 提示:计算平方根可以调用math.sqrt()函数   # -*- c ...

  6. docker 容器配置tocmat时间不统一

    1.在tomcat配置文件bin下 vim   setenv.sh #!/bin/bashCATALINA_OPTS='-Duser.timezone=Asia/Shanghai'export CAT ...

  7. Apache下的ArrayUtils工具类总结

    ArrayUtils中的方法: 1.add():将给定的数据添加到指定的数组中,返回一个新的数组. 2.addAll():合并两个数组. 3.contains():检查该数据在该数组中是否存在,返回一 ...

  8. for和while循环的区别

    区别:for循环,就是遍历某一对象,通俗说就是根据循环次数限制做多少次重复操作.while循环,是当满足什么条件的时候,才做某种操作. for为遍历循环 while为直到循环

  9. P2596 [ZJOI2006]书架

    思路 一开始写fhq-treap 感觉越写越感觉splay好些,就去splay 然后维护序列 注意前驱后继的不存在的情况 但不用插入虚拟节点(那插入岂不太麻烦) 跑的真慢的一批,splay太多了 错误 ...

  10. P3121 [USACO15FEB]审查(黄金)Censoring (Gold)

    吐槽 数据太水了吧,我AC自动机的trie建错了结果只是RE了两个点,还以为数组开小了改了好久 思路 看到多模板串,字符串匹配,且模板串总长度不长,就想到AC自动机 然后用栈维护当前的字符串位置,如果 ...