【笔记】cookies管理工具类

package com.ulearning.ulms.util;

import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;

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

import com.ulearning.ulms.core.utils.Constants;

public class CookieUtil {
	/*
	 * 从给定的request中查找cookie
	 */
    public static String getCookie(HttpServletRequest request,String cookieName){
    	String rt=null;
    	Cookie[] cookies = request.getCookies();
    	if(cookies!=null)
    	{

    	    for (int i = 0; i < cookies.length; i++)
    	    {
    	       Cookie c = cookies[i];
    	       if(c.getName().equalsIgnoreCase(cookieName))
    	       {
    	    	   rt= c.getValue();
    	    	   break;
    	       }
    	    }
    	  }
    	try {
    		if(rt !=null){
    			rt = URLDecoder.decode(rt,"utf-8");
    		}else{
    			rt = (String)request.getAttribute(cookieName);
    		}
		} catch (UnsupportedEncodingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
    	return rt;
    }
    /**
     * 删除,某一个cookie
     * @param request
     * @param cookieName
     * @return
     */

    public static void clearCookie(HttpServletRequest request,HttpServletResponse response,String cookieName){
    	Cookie[] cookies = request.getCookies();
    	if(cookies!=null)
    	{

    	    for (int i = 0; i < cookies.length; i++)
    	    {
    	       Cookie c = cookies[i];
    	       if(!c.getName().equalsIgnoreCase(cookieName))
    	       {
	    	       c.setValue(null);
	    	       c.setMaxAge(0);
	    	       c.setPath("/");
	    	       response.addCookie(c);
	    	    	   break;
    	       }
    	    }
    	 }
    }

    public static int getCookieInt(HttpServletRequest request,String cookieName){
    	int res = 0;
    	String rt=null;
    	Cookie[] cookies = request.getCookies();
    	if(cookies!=null)
    	{

    	    for (int i = 0; i < cookies.length; i++)
    	    {
    	       Cookie c = cookies[i];
    	       if(c.getName().equalsIgnoreCase(cookieName))
    	       {
    	    	   rt= c.getValue();
    	    	   break;
    	       }
    	    }
    	  }
    	try {
    		if(rt !=null)
    		{
    			rt = URLDecoder.decode(rt,"utf-8");
    			res = Integer.parseInt(rt);
    		}else{
    			rt = (String)request.getAttribute(cookieName);
    			res = rt!=null ? Integer.parseInt(rt) : 0;
    		}
		} catch (UnsupportedEncodingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
    	return res;
    }

    public static void clearCookie(HttpServletRequest request,HttpServletResponse response){
    	String rt=null;
    	Cookie[] cookies = request.getCookies();
    	if(cookies!=null)
    	{
    	    for (int i = 0; i < cookies.length; i++)
    	    {
    	       Cookie c = cookies[i];
    	       if(!c.getName().equalsIgnoreCase(Constants.SHOPPING_CART_KEY))
    	       {
	    	       c.setValue(null);
	    	       c.setMaxAge(0);
	    	       c.setPath("/");
	    	       response.addCookie(c);
	    	       /*rt= c.getValue();
	    	    	   break;*/
    	       }
    	    }
    	}
    }

    //往cookie里面 写入值 name 是键  value 是 值
    public static void addCookie(HttpServletResponse response, String name,
            String value, int maxAge) {
    	try {
			value=URLEncoder.encode(value,"UTF-8");
		} catch (UnsupportedEncodingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}  

        Cookie cookie = new Cookie(name, value);
        if (maxAge > 0)
            cookie.setMaxAge(maxAge);
        cookie.setPath("/");
    	cookie.setComment("EXPIRING COOKIE at "+ System.currentTimeMillis());
        response.addCookie(cookie);
    }

    /**
     * 方法描述:只从cookie中获取。如果不存在该cookie,返回null。
     * @param request
     * @param cookieName
     * @return
     * @author: Huyihui
     * @version: 2012-9-25 上午11:03:04
     */
   public static String getCookieOnly(HttpServletRequest request, String cookieName) {
   	Cookie[] cookieArr = request.getCookies();
   	if (cookieArr != null && cookieArr.length > 0) {
   		for (Cookie cookie : cookieArr) {
   			if (cookie.getName().equals(cookieName)) {
   				try {
						return URLDecoder.decode(cookie.getValue(), "UTF-8");
					} catch (UnsupportedEncodingException e) {
						e.printStackTrace();
					}
   			}
   		}
   	}
   	return null;
   } 

}

笔记

时间: 2024-08-09 06:08:39

【笔记】cookies管理工具类的相关文章

缓存统一管理工具类--android

import android.content.Context; import android.os.Environment; import android.support.annotation.Nullable; import com.lidroid.xutils.db.annotation.NotNull; import junit.framework.Assert; import .R; import .utils.*; import java.io.File; import java.ut

Fragment管理工具类

Fragment相关→FragmentUtils.java→Demo addFragment : 新增fragment removeFragment : 移除fragment replaceFragment : 替换fragment popFragment : 出栈fragment popToFragment : 出栈到指定fragment popAddFragment : 先出栈后新增fragment hideFragment : 隐藏fragment showFragment : 显示fra

Android中的管理工具类log可以这么些.....

做Android开发的一个重要的工具就是locat,这是代码调试,出错排除定位等必不可少的工具,也是习以为常的, 首先我就来先说一下log吧. 它属于android.util.log类.常用的打印日志的方法有5个如下 : Log.v(tag,message) :   //verbose模式,打印最详细的信息 Log.d(tag,message) :   //debug模式,打印调试的信息 Log.i(tag,message) :    //info Log.w(tag,message) :   

Java学习笔记七——数组工具类Arrays

数组工具类Arrays Java提供的Arrays类里包含的一些static修饰的方法可以直接操作数组.若将里面的方法用熟的话,那开发效率会大大提高.下面介绍其中的方法. List<T> asList(T... a) 作用:将指定数组或数组元素,转换成固定大小的List. 用法: String[] strArr = { "aaa", "bbb", "vvv" }; //用法1:参数是数组引用 List<String> li

涂抹mysql笔记-mysql管理工具

五花八门的mysql管理工具<>mysql提供的命令行工具 mysql_install_db:mysql建库工具,在源码安装mysql环节我们使用过. mysql_safe:mysql启动工具 mysqld:mysql主进程,mysql_safe也是调用mysqld进程.启动关闭数据库.查询或修改数据.执行各项维护操作等实际上都是基于mysqld进程的操作. 系统参数:mysql服务启动时的参数 系统变量:mysql服务运行时参数.比如查看与log相关的系统变量使用show global va

java学习笔记之DBUtils工具类

DBUtils工具类 一.介绍 DBUtils是Apache组织开源的数据库工具类. 二.使用步骤 ①.创建QueryRunner对象 ②.调用update()方法或者query()方法执行sql语句 三.构造方法及静态方法 QueryRunner类 1.构造方法 ①.无参构造 QueryRunner qr =new  QueryRunner(); 使用无参构造的时候,调用update方法和query方法时就需要使用带Connection 类型参数的重载形式 ②.有参构造 QueryRunner

【Android工具类】Activity管理工具类AppManager

转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 import java.util.Stack; import android.app.Activity; import android.app.ActivityManager; import android.content.Context; /** * * @ClassName: com.qust.myutils.AppManager * @Description: Activity管理类:用于管理Act

android内存管理工具类

public class MemoryManager { private static final String TAG = "MemoryManager"; private static final int MAXMEMORY=50*1024*1024;//程序运行的最大内存 /** * 判断系统是否在低内存下运行 * @param context * @return */ public static boolean hasAcailMemory() { // 获取手机内部空间大小

Java8 增强工具类 Arrays 笔记

随手笔记做Arrays工具类分为两类单线程和多线程 以下所有带有下标范围限定的,都为含头不含尾 单线程:1.binarySearch:查找数组中为 key 的 下标 :binarySearch 二分法查找,数组必须有序,且存在此数组中,否则返回负数下标 Arrays.binarySearch(Object[] a,Object key):intArrays.binarySearch(Object[] a, int fromIndex, int toIndex,Object key):int跳至例