【笔记】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;
} }
笔记
【笔记】cookies管理工具类的更多相关文章
- 并发编程学习笔记(10)----并发工具类CyclicBarrier、Semaphore和Exchanger类的使用和原理
在jdk中,为并发编程提供了CyclicBarrier(栅栏),CountDownLatch(闭锁),Semaphore(信号量),Exchanger(数据交换)等工具类,我们在前面的学习中已经学习并 ...
- android的Log日志打印管理工具类(一)
android的Log日志的打印管理工具类: package com.gzcivil.utils; import android.util.Log; /** * 日志打印管理 * * @author ...
- Android 软件管理工具类Utils
Android 软件管理工具类Utils /** * Created by uilubo on 2015/9/30. * 工具类 */ public class Utils { public stat ...
- 阶段3 2.Spring_07.银行转账案例_4 编写事务管理工具类并分析连接和线程解绑
事务管理工具类 首先需要有connection.并且是当前线程上的connection.声明connectionUtils.提供set方法等着spring来注入 有异常需要放在事务里面 close关闭 ...
- iOS核心笔记—源代码管理工具-GIT
源代码管理工具-GIT 一. git 概述 1. git 简介? 什么是git? > git是一款开源的分布式版本控制工具 > 在世界上所有的分布式版本控制工具中,git是最快.最简单.最 ...
- Fragment管理工具类
Fragment相关→FragmentUtils.java→Demo addFragment : 新增fragment removeFragment : 移除fragment replaceFragm ...
- Java学习笔记七——数组工具类Arrays
数组工具类Arrays Java提供的Arrays类里包含的一些static修饰的方法可以直接操作数组.若将里面的方法用熟的话,那开发效率会大大提高.下面介绍其中的方法. List<T> ...
- [Guava学习笔记]Collections: 集合工具类
我的技术博客经常被流氓网站恶意爬取转载.请移步原文:http://www.cnblogs.com/hamhog/p/3861431.html,享受整齐的排版.有效的链接.正确的代码缩进.更好的阅读体验 ...
- Dialog对话框管理工具类
import android.app.Dialog; import android.content.Context; import android.content.DialogInterface; i ...
随机推荐
- 【原创】相对完美的垂直居中popup(modal/dialog),无需监听window.resize事件
<table class="popup" style="position: absolute; background-color: black; border-ra ...
- CSS编写技巧
1.尽量少的使用全局的重置代码 全局重置代码:*{margin:0; padding:0;}对于熟悉CSS的人来说并不陌生,并且有很多人的第一句CSS代码就是这句.它可以避免不同浏览器的默认间距不同而 ...
- 使用自定义tld标签简化jsp的繁琐操作
最近做一个树形结构的展示,请求目标页面后,后台只返回简单的List,虽然有想过在jsp页面内做一些操作简化,但是太繁琐了,其他的标签又不能满足需求,所以只能自己做一个.使用tld标签可以简化jsp代码 ...
- Mysql 视图 游标 触发器 存储过程 事务
Mysql 视图 触发器 存储过程 游标 游标是从数据表中提取出来的数据,以临时表的形式存放在内存中,在游标中有一个数据指针,在初始状态下指向的是首记录,利用fetch语句可以移动该指针,从而对游标中 ...
- JS-面向对象
话说,再次看完这个实例后的我,开始怀疑面向对象和JSON的区别...并开始怀疑这是面向对象的真实性 <!DOCTYPE html> <html> <head> &l ...
- 各种HTTP状态的含义
在网站建设的实际应用中,容易出现很多小小的失误,就像MySQL当初优化不到位,影响整体网站的浏览效果一样,其实,网站的常规http状态码的表现也是一样,Google无法验证网站几种解决办法,提及到由于 ...
- 平面内,线与线 两条线找交点 两条线段的位置关系(相交)判定与交点求解 C#
个人亲自编写.测试,可以正常使用 道理看原文,这里不多说 网上找到的几篇基本都不能用的 C#代码 bool Equal(float f1, float f2) { return (Math ...
- Oracle 图形化以及命令行安装
@(Oracle)[Install] Oracle 安装 相关版本说明 不同版本的Oracle需要安装在特定的系统版本之上. 如Oracle 11gR2的11.2.0.1.0需要安装在CentOS 5 ...
- tyvj1034 尼克的任务
描述 尼克每天上班之前都连接上英特网,接收他的上司发来的邮件,这些邮件包含了尼克主管的部门当天要完成的全部任务,每个任务由一个开始时刻与一个持续时间构成.尼克的一个工作日为N分钟,从第一分钟开始到第N ...
- Python基础知识(一)