CookieUtil

package com.css.common.util;

import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
* Description: CookieUtil <br/>
* Copyright: Copyright (c) 2010 <br/>
* Create DateTime: 2010-6-28 下午05:25:45 <br/>
*
* @version 1.0 <br/>
*/
public final class CookieUtil {
 
 private CookieUtil() {
  throw new UnsupportedOperationException();
 }
 
   /**
     * 添加cookie
     * @param response
     * @param name cookie的名称
     * @param value cookie的值
     * @param maxAge cookie存放的时间(以秒为单位,假如存放三天,即3*24*60*60; 如果值为0,cookie将随浏览器关闭而清除)
     */
    public static void addCookie(HttpServletResponse response, String name, String value, int maxAge) {       

        Cookie cookie = new Cookie(name, value);
        cookie.setPath("/");
        if (maxAge>0) {
         cookie.setMaxAge(maxAge);
        }
        response.addCookie(cookie);
    }
   
    /**
     * 获取cookie的值
     * @param request
     * @param name cookie的名称
     * @return
     */
    public static String getCookieByName(HttpServletRequest request, String name) {
     Map<String, Cookie> cookieMap = CookieUtil.readCookieMap(request);
        if (cookieMap.containsKey(name)) {
            Cookie cookie = cookieMap.get(name);
            return cookie.getValue();
        }else{
            return null;
        }
    }
   
    /**
     * 读取Cookie 映射成Map 只供内部方法调用
     * @param request
     * @return
     */
    private static Map<String, Cookie> readCookieMap(HttpServletRequest request) {
        Map<String, Cookie> cookieMap = new HashMap<String, Cookie>();
        Cookie[] cookies = request.getCookies();
        if (null != cookies) {
            for (int i = 0; i < cookies.length; i++) {
                cookieMap.put(cookies[i].getName(), cookies[i]);
            }
        }
        return cookieMap;
    }
}

时间: 2025-01-05 18:17:41

CookieUtil的相关文章

ASP.NET技巧:用MasterPage 代替 PageBase

asp.net|erp|技巧 目的:        实现用MasterPage中的.cs文件 代替项目中的PageBase. 动机:                写这篇文章的动机,来自于一次项目重构.在.Net Framwork 2.0的B/S架构项目中同时采用PageBase和MasterPage技术,发现每次访问页面,页面同时访问PageBase和MasterPage,不仅造成性能降低,甚至有可能给日后的项目功能扩充和调整带来逻辑错误隐患. 技术环节:        PageBase:.N

Java在线问题排查利器之Btrace&amp;Greys

1. 背景说明 前段时间升级了urs新的远程cookie校验模式.功能上线后,发现涉及用户cookie 校验的接口,有时会报接口超时.通过日志埋点方式,确认了与urs提供的jar包内的新验证方法有关.通过反编译,看到相关方法执行过程中涉及参数校验.参数组装.远程访问校验.本地校验等步骤,究竟哪个步骤出了问题? 一种方式是让urs帮忙提供一个新的jar包,在关键步骤处加日志,记录执行时间,另一种方法,就是使用一些在线分析工具.显然第二种方式更方便快捷.本文主要介绍两款在线问题排的工具:Btrace

客户端数据存储----Cookie From 《高程3》

前言 本篇主要介绍Cookie技术的读书总结,但是我认为逻辑上最好会和Web Storage技术放在一起进行对比,因此后续会再总结一篇关于WEB存储的姊妹总结,敬请期待. 首先先来一段总结:Cookie用于本地数据存储,出现在服务器和浏览器交互的响应Set-Cookie头部和请求Cookie头部中,受到单域名下Cookie的数量.单个Cookie大小.性能.安全限制.子Cookie技术的出现缓解了单域名下Cookie的数量限制,关于子Cookie有一整套工具函数可以使用. HTTP Cookie

JavaScript数据存储 Cookie篇_javascript技巧

1.什么是cookie?     答:cookie是用于在客户端存储会话信息的.2.cookie的组成部分?    ①名称:一个唯一确定cookie 的名称.建议区分大小写.cookie 的名称必须是经过URL 编码的.     ②值:储存在cookie 中的字符串值.值必须被URL 编码.     ③域:cookie 对于哪个域是有效的.所有向该域发送的请求中都会包含这个cookie 信息.这个值可以包含子域(subdomain,如www.wrox.com),也可以不包含它(如.wrox.co

JavaScript设置、获取、清除单值和多值cookie的方法_javascript技巧

废话不多说了,直接给大家贴代码了. 具体代码如下: var CookieUtil = (function () { var Cookie = function () { // 获取单值cookie this.get = function(name) { var start = document.cookie.indexOf(encodeURIComponent(name)) ; var end = document.cookie.indexOf(';', start) ; if(end == -

JavaScript中cookie工具函数封装的示例代码_javascript技巧

一. 语法 1.1 获取当前页面的所有cookie: var allCookies = document.cookie; allCookies 是一个字符串,其中包含了以分号分隔的cookie列表字符串 (即 key=value 键值对). 1.2 写一个新cookie: document.cookie = updatedCookie; updatedCookie是一个键值对形式的字符串.只能用这个方法一次设置或更新一个cookie,而且写入并不是覆盖,而是添加.例如: document.coo

java-Memcached客户端报错:您的主机中的软件中止了一个已建立的连接。

问题描述 Memcached客户端报错:您的主机中的软件中止了一个已建立的连接. [单点登陆系统 2015-11-23 17:45:08]: [ERROR] - ++++ exception thrown while writing bytes to server on set [单点登陆系统 2015-11-23 17:45:08]: [ERROR] - 您的主机中的软件中止了一个已建立的连接. java.io.IOException: 您的主机中的软件中止了一个已建立的连接. at sun.

jquery ajax jsp 返回值乱码二向解决方法

jquery ajax 网页特效p/jsp.html target=_blank >jsp教程 返回值乱码二向解决方法在以前开发ajax时经常会碰到乱码,今天我们用jquery ajax+jsp时,又出来乱码了,经常测试找到了二种处理jquery ajax乱码问题,下面看看. <script> $().ready(function(){ var url="/www.111cn.net/ajaxgetnewsclassfather.do"; var pars="

JavaScript cookie 的工具函数封装

一. 语法 1.1 获取当前页面的所有cookie: var allCookies = document.cookie; allCookies 是一个字符串,其中包含了以分号分隔的cookie列表字符串 (即 key=value 键值对). 1.2 写一个新cookie: document.cookie = updatedCookie; updatedCookie是一个键值对形式的字符串.只能用这个方法一次设置或更新一个cookie,而且写入并不是覆盖,而是添加.例如: document.coo