Java对cookie的操作

package cn.utils;

import java.util.HashMap;

import java.util.Map;

import javax.servlet.http.Cookie;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

/**

* 操作cookie的工具类(默认cookie的有效路径为"/")

* @author zwq

* @version 1.0

*/

public class CookieUtil {

/**

* 设置cookie

* @param response @see javax.servlet.http.HttpServletResponse

* @param name cookie名

* @param value cookie值

* @param maxAge cookie的最大活跃时间(单位s)

*/

public static void setCookie(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名获取cookie

* @param request @see javax.servlet.http.HttpServletRequest

* @param name cookie名

* @return

*/

public static Cookie getCookieByName(HttpServletRequest request,String name){

Map<String,Cookie> cookieMap = getCookieMap(request);

if(cookieMap.containsKey(name)){

Cookie cookie = (Cookie)cookieMap.get(name);

return cookie;

}else{

return null;

}

}

/**

* 获取cookie的map集合(key=cookieName,value=cookie)

* @param request @see javax.servlet.http.HttpServletRequest

* @return

*/

private static Map<String,Cookie> getCookieMap(HttpServletRequest request){

Map<String,Cookie> cookieMap = new HashMap<String,Cookie>();

Cookie[] cookies = request.getCookies();

if(null!=cookies){

for(Cookie cookie : cookies){

cookieMap.put(cookie.getName(), cookie);

}

}

return cookieMap;

}

/**

* 根据指定cookie名检测cookie是否存在

* @param request @see javax.servlet.http.HttpServletRequest

* @param name cookie名

* @return

*/

public static boolean checkCookieByName(HttpServletRequest request,String name) {

if (name != null && name.trim() != "") {

Cookie cookie = getCookieByName(request, name);

if (cookie != null) {

return true;

}

}

return false;

}

/**

* 根据指定cookie名删除cookie

* @param request @see javax.servlet.http.HttpServletRequest

* @param response @see javax.servlet.http.HttpServletResponse

* @param name cookie名

*/

public static boolean removeCookie(HttpServletRequest request ,HttpServletResponse response,String name) {

if (name != null && name.trim() != "") {

Cookie[] cookies = request.getCookies();

if (cookies != null && cookies.length > 0) {

for (Cookie cookie : cookies) {

String cookieName = cookie.getName();

// 找到需要删除的Cookie

if (name.equals(cookieName)) {

// 设置生存期为0

cookie.setMaxAge(0);

// 设回Response中生效

response.addCookie(cookie);

return true;

}

}

}

}

return false;

}

}

Javascript对cookie的操作

/**

* @description 操作cookie的工具类

* @author zwq

* @version 1.0

*/

/**

* @description 设置cookie

* @param {string} cookieName cookie名

* @param {string} cookieValue cookie值

* @param {Date} [cookieExpires] cookie过期时间(可选参数,默认当前会话)

* @param {string} [cookiePath] cookie有效路径(可选参数,默认"/")

*/

function setCookie(cookieName, cookieValue, cookieExpires, cookiePath) {

if (typeof cookieName === "string" && typeof cookieValue == "string" && cookieName.trim() !== "") {

var cookieStr = cookieName + "=" + cookieValue;

if (typeof cookieExpires === "object") {

cookieStr += ";expires=" + cookieExpires.toUTCString();

}

if (typeof cookiePath === "string" && cookiePath.trim() !== "") {

cookieStr += ";path=" + cookiePath;

}

document.cookie = cookieStr;

}

}

/**

* @description 根据cookie名获取cookie值

* @param {string} cookieName cookie名

* @returns {string}

*/

function getCookie(cookieName) {

if (typeof cookieName === "string" && cookieName.trim() !== "") {

if (document.cookie.length > 0) {

var cookieArr = document.cookie.split(";");

for (var i = 0; i < cookieArr.length; i++) {

var cookie = cookieArr[i].trim();

if (cookie.indexOf(cookieName) === 0) {

return cookie.substring(cookieName.length + 1, cookie.length);

}

}

}

}

return "";

}

/**

* @description 根据指定cookie名检测cookie是否存在

* @param {string} cookieName cookie名

* @returns {boolean}

*/

function checkCookie(cookieName) {

if (typeof cookieName === "string" && cookieName.trim() !== ""){

var cookieValue = getCookie(cookieName);

if (cookieValue !== "" && cookieValue !== null && cookieValue !== undefined){

return true;

}

}

return false;

}

/**

* @description 根据指定cookie名删除cookie

* @param {string} cookieName cookie名

* @returns {boolean}

*/

function deleteCookie(cookieName) {

if (typeof cookieName === "string" && cookieName.trim() !== ""){

var cookieValue = getCookie(cookieName);

if (cookieValue !== "" && cookieValue !== null && cookieValue !== undefined){

var date = new Date();

document.cookie = cookieName + "=;expires=" + date.toUTCString();

return true;

}

}

return false;

}

java与javascript对cookie操作的工具类的更多相关文章

  1. Redis操作Set工具类封装,Java Redis Set命令封装

    Redis操作Set工具类封装,Java Redis Set命令封装 >>>>>>>>>>>>>>>>& ...

  2. Redis操作List工具类封装,Java Redis List命令封装

    Redis操作List工具类封装,Java Redis List命令封装 >>>>>>>>>>>>>>>> ...

  3. java中文件操作的工具类

    代码: package com.lky.pojo; import java.io.BufferedReader; import java.io.BufferedWriter; import java. ...

  4. Java操作Redis工具类

    依赖 jar 包 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis< ...

  5. 自己封装的poi操作Excel工具类

    自己封装的poi操作Excel工具类 在上一篇文章<使用poi读写Excel>中分享了一下poi操作Excel的简单示例,这次要分享一下我封装的一个Excel操作的工具类. 该工具类主要完 ...

  6. Java基础知识强化62:Arrays工具类之概述和使用

    1. Arrays工具类: Arrays这个类包含操作数组(比如排序和查找)的各种方法. 2. Arrays的方法: (1)toString方法:把数组转成字符串 public static Stri ...

  7. Java从零开始学二十四(集合工具类Collections)

    一.Collections简介 在集合的应用开发中,集合的若干接口和若干个子类是最最常使用的,但是在JDK中提供了一种集合操作的工具类 —— Collections,可以直接通过此类方便的操作集合 二 ...

  8. Java语言Lang包下常用的工具类介绍_java - JAVA

    文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 无论你在开发哪中 Java 应用程序,都免不了要写很多工具类/工具函数.你可知道,有很多现成的工具类可用,并且代码质量都 ...

  9. Redis操作Hash工具类封装,Redis工具类封装

    Redis操作Hash工具类封装,Redis工具类封装 >>>>>>>>>>>>>>>>>> ...

随机推荐

  1. java servlet 3.0文件上传

    在以前,处理文件上传是一个很痛苦的事情,大都借助于开源的上传组件,诸如commons fileupload等.现在好了,很方便,便捷到比那些组件都方便至极.以前的HTML端上传表单不用改变什么,还是一 ...

  2. 杭电 1012 u Calculate e【算阶乘】

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1012 解题思路:对阶乘递归求和 反思:前面3个的输出格式需要注意,可以自己单独打印出来,也可以在for ...

  3. 脚本编写 nginx 启动

    #!bin/bash#功能:本脚本编写完成后,放置在/etc/init.d/目录下,就可以被 Linux 系统自动识别到该脚本.#如果本脚本命名为/etc/init.d/nginx,则 service ...

  4. 洛谷P2822 组合数问题 杨辉三角

    没想到这道题竟然这么水- 我们发现m,n都非常小,完全可以O(nm)O(nm)O(nm)预处理出stripe数组,即代表(i,j)(i,j)(i,j) 及其向上的一列的个数,然后进行递推即可. #in ...

  5. 路飞学城Python-Day150

    最近由于在忙别的事情,所以路飞的课程就往后延期了,感觉很难受,不过我还是依然坚持学下去,必须的 最近在忙的事情 1.进入了数据分析行业,需要学习更多的知识 2.开始对数据收集负责,写各种爬虫 3.对数 ...

  6. HTML5新特性之文件和二进制数据的操作 Blob对象

    HTML5新特性之文件和二进制数据的操作 1.Blob对象 2.FileList对象 3.File对象 4.FileReader 对象 5.URL对象

  7. sublimText3 快捷键大全(转)

    Ctrl+D 选中光标所占的文本,继续操作则会选中下一个相同的文本. Alt+F3 选中文本按下快捷键,即可一次性选择全部的相同文本进行同时编辑.举个栗子:快速选中并更改所有相同的变量名.函数名等. ...

  8. mysql新建用户,修改权限

    (1)登录:mysql -u root -p (2)查看现有用户(mysql8.0.1) mysql> select host,user,authentication_string from m ...

  9. UNIX时间转换ASP代码.txt

    '参数:strTime:要转换的时 间:intTimeZone:该时间对应的时区 '返回值:strTime相对于1970年1月1日午夜0点经过的秒数 '示例:ToUnixTime("2008 ...

  10. Vue学习之路第十四篇:v-for指令中key的使用注意事项

    1.学前准备: JavaScript中有一个方法:unshift() ,其作用是向数组的开头添加一个或更多元素,并返回新的长度.该方法的第一个参数将成为数组的新元素 0,如果还有第二个参数,它将成为新 ...