Java实现对cookie的增删改查

原文:http://blog.csdn.net/k21325/article/details/54377830

1.springMVC框架:

         

[java] view plain copy

  1. /**
  2. * 读取所有cookie
  3. * 注意二、从客户端读取Cookie时,包括maxAge在内的其他属性都是不可读的,也不会被提交。浏览器提交Cookie时只会提交name与value属性。maxAge属性只被浏览器用来判断Cookie是否过期
  4. * @param request
  5. * @param response
  6. */
  7. @RequestMapping("/showCookies")
  8. public void showCookies(HttpServletRequest request,HttpServletResponse response ){
  9. Cookie[] cookies = request.getCookies();//这样便可以获取一个cookie数组
  10. if (null==cookies) {
  11. System.out.println("没有cookie=========");
  12. } else {
  13. for(Cookie cookie : cookies){
  14. System.out.println("name:"+cookie.getName()+",value:"+ cookie.getValue());
  15. }
  16. }
  17. }

         

[java] view plain copy

  1. /**
  2. * 添加cookie
  3. * @param response
  4. * @param name
  5. * @param value
  6. */
  7. @RequestMapping("/addCookie")
  8. public void addCookie(HttpServletResponse response,String name,String value){
  9. Cookie cookie = new Cookie(name.trim(), value.trim());
  10. cookie.setMaxAge(30 * 60);// 设置为30min
  11. cookie.setPath("/");
  12. System.out.println("已添加===============");
  13. response.addCookie(cookie);
  14. }

       

[java] view plain copy

  1. /**
  2. * 修改cookie
  3. * @param request
  4. * @param response
  5. * @param name
  6. * @param value
  7. * 注意一、修改、删除Cookie时,新建的Cookie除value、maxAge之外的所有属性,例如name、path、domain等,都要与原Cookie完全一样。否则,浏览器将视为两个不同的Cookie不予覆盖,导致修改、删除失败。
  8. */
  9. @RequestMapping("/editCookie")
  10. public void editCookie(HttpServletRequest request,HttpServletResponse response,String name,String value){
  11. Cookie[] cookies = request.getCookies();
  12. if (null==cookies) {
  13. System.out.println("没有cookie==============");
  14. } else {
  15. for(Cookie cookie : cookies){
  16. if(cookie.getName().equals(name)){
  17. System.out.println("原值为:"+cookie.getValue());
  18. cookie.setValue(value);
  19. cookie.setPath("/");
  20. cookie.setMaxAge(30 * 60);// 设置为30min
  21. System.out.println("被修改的cookie名字为:"+cookie.getName()+",新值为:"+cookie.getValue());
  22. response.addCookie(cookie);
  23. break;
  24. }
  25. }
  26. }
  27. }

        

[java] view plain copy

  1. /**
  2. * 删除cookie
  3. * @param request
  4. * @param response
  5. * @param name
  6. */
  7. @RequestMapping("/delCookie")
  8. public void delCookie(HttpServletRequest request,HttpServletResponse response,String name){
  9. Cookie[] cookies = request.getCookies();
  10. if (null==cookies) {
  11. System.out.println("没有cookie==============");
  12. } else {
  13. for(Cookie cookie : cookies){
  14. if(cookie.getName().equals(name)){
  15. cookie.setValue(null);
  16. cookie.setMaxAge(0);// 立即销毁cookie
  17. cookie.setPath("/");
  18. System.out.println("被删除的cookie名字为:"+cookie.getName());
  19. response.addCookie(cookie);
  20. break;
  21. }
  22. }
  23. }
  24. }

2.一般情况下,会首先对cookie进行封装:

[java] view plain copy

  1. /**
  2. * 根据名字获取cookie
  3. * @param request
  4. * @param name cookie名字
  5. * @return
  6. */
  7. public  Cookie getCookieByName(HttpServletRequest request,String name){
  8. Map<String,Cookie> cookieMap = ReadCookieMap(request);
  9. if(cookieMap.containsKey(name)){
  10. Cookie cookie = (Cookie)cookieMap.get(name);
  11. return cookie;
  12. }else{
  13. return null;
  14. }
  15. }

[java] view plain copy

  1. /**
  2. * 将cookie封装到Map里面
  3. * @param request
  4. * @return
  5. */
  6. private  Map<String,Cookie> ReadCookieMap(HttpServletRequest request){
  7. Map<String,Cookie> cookieMap = new HashMap<String,Cookie>();
  8. Cookie[] cookies = request.getCookies();
  9. if(null!=cookies){
  10. for(Cookie cookie : cookies){
  11. cookieMap.put(cookie.getName(), cookie);
  12. }
  13. }
  14. return cookieMap;
  15. }
时间: 2024-08-29 12:00:30

Java实现对cookie的增删改查的相关文章

Java实现对MongoDB的增删改查

一.连接数据库 连接数据库,你需要指定数据库名称,如果指定的数据库不存在,mongo会自动创建数据库. 连接数据库的Java代码如下(无需密码的连接): public class MongTest { public static void main(String[] args) { try { MongoClient mongoClient = new MongoClient("localhost",27017);//连接到 mongodb 服务 MongoDatabase mongo

web项目总结——通过jsp+servlet实现对oracle的增删改查功能

1.DAO模式 分包:依次建立 entity:实体包,放的是跟oracle数据库中表结构相对应的对象的属性,也就是这个对象有什么 dao:增删改查接口,实现增删改查的具体方法 service:同dao,也是一个接口,一个接口的实现类,方法什么的都跟dao差不多 servlet:新建servlet类,继承HttpServlet类,一个方法建立一个servlet类,根据不同的方法选择使用doGet().doPost()方法 .services()既包含doGet 又包含doPost 新建jsp页面

Android 利用xUtils框架实现对sqllite的增删改查

首先下载xUtils,下载地址:https://github.com/wyouflf/xUtils  把下载好的文件压缩,把里面的jar包拷进项目中如图所示: 这里新建一个User类进行测试增删改查 package com.example.xutilsdemo; public class User { private int id; private String name; private String email; public int getId() { return id; } publi

Java API实现Hadoop文件系统增删改查

Java API实现Hadoop文件系统增删改查 Hadoop文件系统可以通过shell命令hadoop fs -xx进行操作,同时也提供了Java编程接口 maven配置 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.ap

Servlet中请给出一个Cookie的增删改查的例子。

2.Servlet与Cookie:(视频下载) (全部书籍) 马 克-to-win:Cookie有点像Session.Session是把键值对存在服务器端,一个Servlet存值 ,另外一个Servlet可以取值.Cookie也是以键值对的形式用于读取,不过是保存在客户端 浏览器的某个文本里面.取时,也要从这台机器的这个浏览器上去取.像Session一样,你 也可以设置过期时间,比如“一年”.和Session不同的是:用户可以把自己浏览器的Cookie工作系统关掉.这就是Cookie不如Sess

Java Web(十) JDBC的增删改查,C3P0等连接池,dbutils框架的使用

前面做了一个非常垃圾的小demo,真的无法直面它,菜的抠脚啊,真的菜,好好努力把.菜鸡. --WH 一.JDBC是什么? Java Data Base Connectivity,java数据库连接,在需要存储一些数据,或者拿到一些数据的时候,就需要往数据库里存取数据,那么java如何连接数据库呢?需要哪些步骤? 1.注册驱动 什么是驱动? 驱动就是JDBC实现类,通俗点讲,就是能够连接到数据库功能的东西就是驱动,由于市面上有很多数据库,Oracle.MySql等等,所以java就有一个连接数据库

实训第一天--增删改查加hibernate

1.     搭建环境 安装 1)谷歌浏览器 2)jdk-7u67-windows-i586.exe 3)Tomcat7 4)NavicatforMySQL 两种方式: ftp://172.21.95.99/ 飞秋 2.     摸底测试 http://www.runoob.com/quiz/html-quiz.html http://jpk.lncc.edu.cn/jpk07/javakf/javatest/index.asp 3.     讲课过程:Hibernate->Struts->j

java学习笔记之分层增删改查

增删改查 一.准备jar包 数据库驱动包 DBUtils包 C3P0连接池 的jar包 二.配置好C3P0的配置文件 1 <?xml version="1.0" encoding="UTF-8"?> 2 <c3p0-config> 3 <!-- 默认配置 --> 4 <default-config> 5 <property name="driverClass">com.mysql.jdb

java使用dom4j操作XML增删改查-超简洁

一.前言 1.使用工具:eclipse    环境:JDK-11 2.类说明:共四个类:Zen   |  Shan  |   Gai   |   Cha   (一个类只做一件事,简单明了) 3.引用jar包:dom4j-1.6.1.jar 4.反馈方式:邮箱 [email protected] 5.使用的源XML名为:Humen.xml  内容如下 二.源码 1.在源XML基础上添加新的 节点.属性.文本内容 /** * 作者:向家康 * 版权所有 禁止转发 */package 正式版.XML.