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 ...
随机推荐
- python time 和 datetime 模块的简介
时间处理 time 和 datetime import timeimport datetimeprint time.time() #时间戳显示为1508228106.49print time.strf ...
- "下载"文件夹的desktop.ini
下载 [.ShellClassInfo] LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21798 IconResource=%S ...
- react-quill 富文本编辑器
适合react的一款轻量级富文本编辑器 1.http://blog.csdn.net/xiaoxiao23333/article/details/62055128 (推荐一款Markdown富文本编辑 ...
- 【scala】Option类型
一般来说,对于每种语言都会有一个关键字来表示一个对象引用的“无”.在Java中使用的是null. 而Scala则融合了函数式编程的风格,当预计到变量或者函数返回值可能不会引用任何值的时候,使用Opti ...
- ios上传图片遇见了一个TimeoutError(DOM Exception 23)异常
TimeoutError(DOM Exception 23):The operation timed out 百度了下,没发现解决办法
- java基本数据类型、修饰符、运算符
数据类型: 基本数据类型 整数类型 byte,8位 short,16位 int,32位i long,64位 浮点类型 float,单精度,32位 double,双精度,64位 布尔类型 ...
- UIPickerView/UIDatePicker/程序启动的完整过程
一.UIPickerView 1.UIPickerView的常见属性 数据源(用来告诉UIPickerView有多少列多少行) @property(nonatomic,assign) id<UI ...
- New Concept English three (36)
21 54 We are less credulous than we used to be. In the nineteenth century, a novelist would bring hi ...
- Dojo仪表盘
Dojo提供了非常好的仪表盘显示,效果如下: <!DOCTYPE html> <html> <head> <title>Dojo仪表盘</titl ...
- Webpack 热部署检测不到文件变化问题
Webpack 热部署检测不到文件变化问题 今天在用Webpack开发的时候,突然发现文件变动后热部署功能不工作了,感觉好像是webpack检测不到文件的修改了.折腾了半天,开始一直以为是自己的代码有 ...