`

java之cookie

    博客分类:
  • java
阅读更多

 

  1. package test;  
  2. import java.util.Hashtable;  
  3. import java.util.Iterator;  
  4. import java.util.Set;  
  5. import javax.servlet.http.Cookie;  
  6. import javax.servlet.http.HttpServletRequest;  
  7. import javax.servlet.http.HttpServletResponse;  
  8. /** 
  9.  * Cookie的操作类 
  10.  * @author shy.qiu 
  11.  * 
  12.  */  
  13. public class CookieHandler {  
  14.     /** 
  15.      * 创建cookie 
  16.      *  
  17.      * @param response 
  18.      *            回应 
  19.      * @param nameValues 
  20.      *            存入cookie的键值对 
  21.      * @param days 
  22.      *            设置cookie的有效期 
  23.      */  
  24.     public static void createCookie(HttpServletResponse response,  
  25.             Hashtable<String, String> nameValues, int days) {  
  26.         Set<String> set = nameValues.keySet();  
  27.         Iterator<String> it = set.iterator();  
  28.         for (; it.hasNext();) {  
  29.             String name = (String) it.next();  
  30.             String value = (String) nameValues.get(name);  
  31.             // 生成新的cookie  
  32.             Cookie cookie = new Cookie(name, value);  
  33.             // 设置有效日期  
  34.             cookie.setMaxAge(days * 24 * 60 * 60);  
  35.             // 设置路径(默认)  
  36.             cookie.setPath("/");  
  37.             // 把cookie放入响应中  
  38.             response.addCookie(cookie);  
  39.         }  
  40.     }  
  41.     /** 
  42.      * 读取Cookie 
  43.      *  
  44.      * @param request 
  45.      * @return Hashtable 返回cookie的键值对 
  46.      */  
  47.     public static Hashtable<String, String> getCookies(  
  48.             HttpServletRequest request) {  
  49.         Cookie[] cookies = request.getCookies();  
  50.         Hashtable<String, String> cookieHt = new Hashtable<String, String>();  
  51.         if (cookies.length > 0) {  
  52.             for (int i = 0; i < cookies.length; i++) {  
  53.                 Cookie cookie = cookies[i];  
  54.                 cookieHt.put(cookie.getName(), cookie.getValue());  
  55.             }  
  56.         }  
  57.         return cookieHt;  
  58.     }  
  59.     /** 
  60.      * 修改cookie中指定键的值 
  61.      *  
  62.      * @param request 
  63.      * @param name 
  64.      *            指定的键 
  65.      * @param value 
  66.      *            值 
  67.      */  
  68.     public static void setCookieValueByName(HttpServletRequest request,  
  69.             String name, String value) {  
  70.         Cookie[] cookies = request.getCookies();  
  71.         if (cookies.length > 0) {  
  72.             for (int i = 0; i > cookies.length; i++) {  
  73.                 if (name.equalsIgnoreCase(cookies[i].getName())) {  
  74.                     cookies[i].setValue(value);  
  75.                 }  
  76.             }  
  77.         }  
  78.     }  
  79.     /** 
  80.      * 得到指定键的值 
  81.      *  
  82.      * @param request 
  83.      * @param name 
  84.      *            指定的键 
  85.      * @return String 值 
  86.      */  
  87.     public static String getCookieValueByName(HttpServletRequest request,  
  88.             String name) {  
  89.         Cookie[] cookies = request.getCookies();  
  90.         String resValue = "";  
  91.         if (cookies.length > 0) {  
  92.             for (int i = 0; i > cookies.length; i++) {  
  93.                 if (name.equalsIgnoreCase(cookies[i].getName())) {  
  94.                     resValue = cookies[i].getValue();  
  95.                 }  
  96.             }  
  97.         }  
  98.         return resValue;  
  99.     }  
  100.     /** 
  101.      * 销毁cookie 
  102.      *  
  103.      * @param request 
  104.      * @param response 
  105.      */  
  106.     public static void deletesCookie(HttpServletRequest request,  
  107.             HttpServletResponse response) {  
  108.         Cookie[] cookies = request.getCookies();  
  109.         if (cookies != null) {  
  110.             for (int i = 0; i < cookies.length; i++) {  
  111.                 Cookie cookie = cookies[i];  
  112.                 // 销毁  
  113.                 cookie.setMaxAge(0);  
  114.                 response.addCookie(cookie);  
  115.             }  
  116.         }  
  117.     }  
  118. }  

Cookies集合是附属于Response对象及Request对象的数据集合,使用时需要在前面加上Response或Request;如果用户要读取Cookies,则必须使用Request对象的Cookies集合

 需要注意的是,只有在服务器未被下载任何数据给浏览器前,浏览器才能与Server进行Cookies集合的数据交换,一旦浏览器开始接收Server所下载的数据,Cookies的数据交换则停止,为了避免错误,要在程序和前面加上response.Buffer=True。

 

分享到:
评论

相关推荐

    JAVA之cookie与session

    ### JAVA之cookie与session #### 一、Cookie与Session的概念 **Cookie** 与 **Session** 是两种在 Web 开发中用于跟踪用户会话的重要技术。它们的主要目标是在客户端和服务端之间保持状态。 - **Cookie** 机制...

    关于java应用cookie

    ### 关于Java应用Cookie知识点详解 #### 一、Cookie简介 Cookie是一种常用的技术,用于存储用户的访问信息。在Web开发中,服务器可以将少量的信息发送到客户端浏览器,并存储在客户端,这种信息就是Cookie。当...

    Java 模拟cookie登陆简单操作示例

    Java 模拟Cookie 登陆简单操作示例 在本文中,我们将介绍 Java 模拟 Cookie 登陆的简单操作,结合实例...本示例可以帮助开发者快速了解 Java 模拟 Cookie 登陆的实现原理和实现方法,为实际开发中提供了有价值的参考。

    java 操作cookie

    Java 操作 Cookie Java 操作 Cookie 是一种常用的 Web 开发技术,用于在服务器端和客户端之间交换数据。Cookie 是一种小文本文件,存储在客户端浏览器中,用于记录用户的行为和偏好。下面我们将详细介绍 Java 操作 ...

    java对cookie的操作java对cookie的操作

    Java中的Cookie操作是Web开发中常见的一种技术,用于在客户端和服务器之间传递状态信息。Cookie是一种小型文本文件,由服务器发送到用户的浏览器,并由浏览器在后续请求中返回给服务器。以下将详细介绍Java如何进行...

    java中cookie的使用教程

    在Java编程语言中,Cookie是一种小型文本文件,用于在客户端和服务器之间传递信息,特别是保持用户状态和会话。本文将深入讲解Java中Cookie的使用方法,包括创建、设置、读取和删除Cookie,以及其在Web应用程序中的...

    javacookie的使用

    ### Java Cookie 的使用详解 #### 一、Cookie简介 在Java Web开发中,Cookie是一种用于在客户端存储数据的技术。它通常被用来跟踪用户状态或存储用户的偏好设置等信息。Cookie可以方便地帮助开发者实现诸如登录...

    JAVA100例之实例81Cookie计数器

    "JAVA100例之实例81Cookie计数器"是一个典型的示例,旨在教会开发者如何使用Cookie来实现一个简单的访问计数功能。下面我们将深入探讨这个实例涉及的知识点。 1. **Cookie基本概念**: - Cookie是由服务器发送到...

    java cookie 例子

    Java Cookie 是一种在客户端和服务器之间传递信息的技术,主要用于存储用户状态或偏好设置。在Servlet环境中,Cookie常用于实现会话管理,例如保存登录状态、购物车信息等。本示例将详细介绍如何在Java Servlet中...

    discuz与java通过cookie共享登陆

    标题“Discuz与Java通过Cookie共享登录”涉及的是在Web开发中如何实现不同系统间用户登录状态的共享,特别是Discuz论坛系统与基于Java的应用之间的交互。Discuz是一款流行的开源社区论坛软件,而Java是一种广泛使用...

    JS cookie Java cookie regex 整理结果

    JavaScript(JS)Cookie和Java Cookie是Web开发中用于存储客户端数据的两种常见方式,而正则表达式(Regex)在处理字符串和数据匹配时扮演着重要角色。下面将详细阐述这三个知识点及其应用。 首先,JavaScript ...

    aaaaaa.zip_cookie_cookie java_java cookie

    **Java Cookie技术详解** 在Web开发中,Cookie是一种非常重要的技术,它被广泛用于实现用户会话管理、个性化设置、保持登录状态等功能。Cookie的工作原理是服务器在客户端(用户的浏览器)上存储一小段文本信息,当...

    java cookie 读写,记住密码 自动登录

    在Java Web开发中,Cookie是客户端存储数据的一种方式,它用于在用户浏览器和服务器之间传递信息,实现会话管理、个性化设置等功能。本主题将详细讲解如何使用Java进行Cookie的读写操作,以及如何利用Cookie实现记住...

    java中cookie,session,验证码的应用实例!

    在Java Web开发中,Cookie、Session和验证码是三个非常重要的概念,它们对于用户身份验证、会话管理以及防止恶意自动操作起着关键作用。本文将深入探讨这些概念,并通过实例来展示它们在实际项目中的应用。 首先,...

    java网络爬虫-通过登陆网站携带COOKIE信息爬取网站数据

    总的来说,这个项目涉及了Java网络编程、HTTP请求、登录处理、COOKIE管理、HTML解析以及数据库操作等多个方面,这些都是Java网络爬虫开发中常见的核心技术。通过实践和学习这些知识点,你可以构建出强大的爬虫系统,...

    java访问.net webservice获取与设置cookie

    本篇文章将深入探讨如何使用Java访问.NET Web服务,并在过程中获取和设置Cookie,以便实现更高效、安全的会话管理。首先,让我们理解Web服务的基本概念。 Web服务是一种通过HTTP协议提供功能的方法,使得不同系统间...

    JAVA操作COOKIE.docx

    JAVA 操作 COOKIE Cookie 是一种小型文本文件, Webseite 服务器通过 HTTP 头将其发送到浏览器端,浏览器将其存储在本地,下次访问同一网址时,浏览器将其发送回服务器端,以便服务器端识别用户身份、追踪用户行为...

    java 基于 Cookie 的 SSO 中间件 kisso 低代码

    在Java环境中,实现SSO的一个常见方式是通过Cookie。Kisso是一个基于Cookie的轻量级SSO中间件,它简化了SSO的实施过程,尤其是对于那些不熟悉复杂认证流程的开发者来说,Kisso的低代码特性使其变得更加友好。 Kisso...

    java对cookie的操作.doc

    在Java Web开发中,Cookie是一种常用的机制,用于在客户端存储数据。它可以帮助开发者实现会话管理、用户跟踪等功能。本文将详细介绍如何在Java中创建、读取Cookie,以及设置其生命周期和路径。 首先,创建一个...

    java对cookie的操作

    ### Java对Cookie的操作详解 #### 一、简介 在Java Web开发中,Cookie是一种非常重要的技术,用于在客户端存储信息。通过Cookie,服务器可以记住用户的某些偏好或登录状态等信息,从而提供更好的用户体验。本文将...

Global site tag (gtag.js) - Google Analytics