Cookie操作类、 包括创建、读取、修改、获取、销毁cookie
Cookie操作类、 包括创建、读取、修改、获取、销毁cookie
import java.util.Hashtable;
import java.util.Iterator;
import java.util.Set;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Cookie的操作类
*
*
*/
public class CookieHandler {
/**
* 创建cookie
*
* @param response
* 回应
* @param nameValues
* 存入cookie的键值对
* @param days
* 设置cookie的有效期
*/
public static void createCookie(HttpServletResponse response,
Hashtable<String, String> nameValues, int days) {
Set<String> set = nameValues.keySet();
Iterator<String> it = set.iterator();
for (; it.hasNext();) {
String name = (String) it.next();
String value = (String) nameValues.get(name);
// 生成新的cookie
Cookie cookie = new Cookie(name, value);
// 设置有效日期
cookie.setMaxAge(days * 24 * 60 * 60);
// 设置路径(默认)
cookie.setPath("/");
// 把cookie放入响应中
response.addCookie(cookie);
}
}
/**
* 读取Cookie
*
* @param request
* @return Hashtable 返回cookie的键值对
*/
public static Hashtable<String, String> getCookies(
HttpServletRequest request) {
Cookie[] cookies = request.getCookies();
Hashtable<String, String> cookieHt = new Hashtable<String, String>();
if (cookies.length > 0) {
for (int i = 0; i < cookies.length; i++) {
Cookie cookie = cookies[i];
cookieHt.put(cookie.getName(), cookie.getValue());
}
}
return cookieHt;
}
/**
* 修改cookie中指定键的值
*
* @param request
* @param name
* 指定的键
* @param value
* 值
*/
public static void setCookieValueByName(HttpServletRequest request,
String name, String value) {
Cookie[] cookies = request.getCookies();
if (cookies.length > 0) {
for (int i = 0; i > cookies.length; i++) {
if (name.equalsIgnoreCase(cookies[i].getName())) {
cookies[i].setValue(value);
}
}
}
}
/**
* 得到指定键的值
*
* @param request
* @param name
* 指定的键
* @return String 值
*/
public static String getCookieValueByName(HttpServletRequest request,
String name) {
Cookie[] cookies = request.getCookies();
String resValue = "";
if (cookies.length > 0) {
for (int i = 0; i > cookies.length; i++) {
if (name.equalsIgnoreCase(cookies[i].getName())) {
resValue = cookies[i].getValue();
}
}
}
return resValue;
}
/**
* 销毁cookie
*
* @param request
* @param response
*/
public static void deletesCookie(HttpServletRequest request,
HttpServletResponse response) {
Cookie[] cookies = request.getCookies();
if (cookies != null) {
for (int i = 0; i < cookies.length; i++) {
Cookie cookie = cookies[i];
// 销毁
cookie.setMaxAge(0);
response.addCookie(cookie);
}
}
}
}
Cookie的属性:
name:必须的
value:必须的
comment:可选的。注释
path: 可选的,如果不设置路径,那么只有设置该cookie的URI及其子路径可以访问
写Cookie的程序的访问路径是:http://localhost:8080/JavaWeb/servlet/CookieDemo
其中:localhost就是域名;/JavaWeb/servlet就是当前Cookie的path
若访问的地址的URI包含着cookie的路径,即URI.startWith(cookie的路径),为true,则客户端将该cookie带给服务器。
比如浏览器存的cookie的路径是/JavaWeb
现在访问的地址是:http://localhost:8080/JavaWeb/servlet/CookieDemo 则带该cookie
现在访问的地址是:http://localhost:8080/JavaWeb/CookieDemo 则带该cookie
若浏览器存的cookie的路径是/JavaWeb/servlet/
访问的地址是:http://localhost:8080/JavaWeb/servlet/CookieDemo 则带该cookie
访问的地址是:http://localhost:8080/JavaWeb/CookieDemo 则不带该cookie
如果一个cookie的路径设置成了/JavaWeb,意味着浏览器访问当前应用下的所有资源时都会带着该cookie给服务器。
domain:可选的。该Cookie所属的网站域名。(apache.org)默认值。
maximum age:可选的。不设置就是会话过程(存在浏览器的内存中)。单位是秒
如果是0,说明要删除。
version:可选的。
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Cookie cookie=new Cookie("name","Tom");
//设置Maximum Age
cookie.setMaxAge(1000);
//设置cookie路径为当前项目路径
cookie.setPath(request.getContextPath());
//添加cookie
response.addCookie(cookie);
}
java对cookie的操作
Cookie操作类、 包括创建、读取、修改、获取、销毁cookie的更多相关文章
- Cookie操作类 实现记住用户名和密码的功能
import java.util.Hashtable;import java.util.Iterator;import java.util.Set;import javax.servlet.http. ...
- 【.NET】Cookie操作类
public static class CookiesHelper { /// <summary> /// Cookies赋值 /// </summary> /// <p ...
- C#Cookie操作类,删除Cookie,给Cookie赋值
using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security ...
- c#使用DotNetZip封装类操作zip文件(创建/读取/更新)实例
DotnetZip是一个开源类库,支持.NET的任何语言,可很方便的创建,读取,和更新zip文件.而且还可以使用在.NETCompact Framework中. 下载地址在这里:http://dot ...
- Cookie操作类、压缩、序列化
1.cookie类 CartCookie.cs using System; using System.Data; using System.Configuration; using System.We ...
- java 操作Excel表 创建 查看 修改
需要用到jxl.jar包 修改有两种方法一种是jxl的 另一种需要apache.poi包 package excelChuLi; import java.io.File; import java. ...
- php 对url 操作类:url拼接、get获取页面、post获取页面(带传参)
/* * @brief url封装类,将常用的url请求操作封装在一起 * */ class URL{ private $error; public function __construct(){ $ ...
- C#文件的压缩和解压(ZIP)使用DotNetZip封装类操作zip文件(创建/读取/更新)实例
需要引用Ionic.Zip命名空间 DLL下载地址在这里:http://dotnetzip.codeplex.com/ 文件压缩 /// <summary> /// 压缩ZIP文件 /// ...
- 生成二维码 加密解密类 TABLE转换成实体、TABLE转换成实体集合(可转换成对象和值类型) COOKIE帮助类 数据类型转换 截取字符串 根据IP获取地点 生成随机字符 UNIX时间转换为DATETIME\DATETIME转换为UNIXTIME 是否包含中文 生成秘钥方式之一 计算某一年 某一周 的起始时间和结束时间
生成二维码 /// <summary>/// 生成二维码/// </summary>public static class QRcodeUtils{private static ...
随机推荐
- spring3: 依赖和依赖注入-xml配置-DI的配置
3.1.1 依赖和依赖注入 传统应用程序设计中所说的依赖一般指“类之间的关系”,那先让我们复习一下类之间的关系: 泛化:表示类与类之间的继承关系.接口与接口之间的继承关系: 实现:表示类对接口的实现 ...
- yii2: 上传图片,生成目录
1.单个文件上传 首先建立一个模型models/UploadForm.php,内容如下 namespace app\models; use yii\base\Model; use yii\web\Up ...
- CMD下利用subst命令将一个文件夹镜像成本地的一个虚拟磁盘
我们都知道net use可以建立网络驱动器映射,这里不说了. 我今天刚看到这命令的,叫镜像虚拟磁盘subst命令,这个命令可以简化好多操作,比如一个常用的文件放在一个路径很深的文件夹中,每次我们想要操 ...
- JSON/JSONP浅谈
一.什么是JSON? JSON 即 JavaScript Object Notation 的缩写,简而言之就是JS对象的表示方法,是一种轻量级的数据交换格式. JSON 是存储和交换文本信息的语法,类 ...
- win8 商店应用 概观
外观: 1,适应性好.可以在各种外形规格和显示大小上正确的展示数据. 2,磁贴. 交互方式: 1,应用栏.使用应用栏可以向用户显示命令和工具.默认情况下,应用栏会被隐藏,当用户使用手指从屏幕的底部边缘 ...
- 版本工具管理之----git
如何查看隐藏文件夹: 如果你看不到.git目录,你需要让隐藏的文件可见.具体做法就是打开一个Terminal窗口,输入以下命令: defaults write com.apple.finder App ...
- 如何发布二次开发后的openfire源码到linux服务器中
这篇文章是在你已经down了openfire的源码,然后在本地跑起来了,再然后开发了一个自己的插件,想要发布到服务器上.ok这时候出现了一个问题,怎么才能发布到服务器上呢?别急往下看: 1.运行ant ...
- setInterval(callback(),time)
最近在写一个需求的时候,出了点小小的问题,在这做个记录. 对于定时函数setInterval()大家应该都不陌生,setInterval(callback(),time)就是说设置一个定时器,每隔ti ...
- kubernetes1.7正式发布
Kubernetes发布历史回顾 Kubernetes 1.0 - 2015年7月发布 Kubernetes 1.1 - 2015年11月发布 Kubernetes 1.2 - 2016年3月发布 K ...
- linux下json库的编译及例程
.下载JsonCpp http://sourceforge.net/projects/jsoncpp/files/ .下载scons http://sourceforge.net/projects/s ...