js 和java对cookie的操作
2012-09-07 15:26
489 查看
在js里面对Cooie操作:
在java语句里面对Cookie操作:
到此!js 和java对Cookie的封装都完成了
参考文献地址:http://www.blogjava.net/fastunit/archive/2008/03/25/188534.html
http://www.open-open.com/lib/view/open1331278611374.html
/** * 通过正则表达式获得cookie * * @param cookieName * @returns cookievalue */ function getCookie(cookieName) { var re = new RegExp("\\b" + cookieName + "=([^;]*)\\b"); var arr = re.exec(document.cookie); return arr ? arr[1] : ""; } /** * 通过截取的方法获得cookie的值 * * @param cookieName * @returns cookievalue */ function getCookie2(cookieName) { var start = document.cookie.indexOf(cookieName + "="); if (start == -1) { return ""; } start = start + cookieName.length + 1; var end = document.cookie.indexOf(";", start); if (end = -1) { end = document.cookie.length; } return document.cookie.substring(start, end); } /** * 通过分组的方式获得cookie的值 * * @param cookieName * @returns cookievalue */ function getCookie3(cookieName) { var cookies = document.cookie.split("; ");// 一个分号加一个空格 if (!cookies.length) { return ""; } var pair = [ "", "" ]; for ( var i = 0; i < cookies.length; i++) { pair = cookies[i].split("=");// 以赋值号分隔,第一位是Cookie名,第二位是Cookie值 if (pair[0] == cookieName) { break; } } return pair[1]; } // Expires,过期日期,一个GMT格式的时间,当过了这个日期之后,浏览器就会将这个Cookie删除掉,当不设置这个的时候,Cookie在浏览器关闭后消失 // Path,一个路径,在这个路径下面的页面才可以访问该Cookie,一般设为“/”,以表示同一个站点的所有页面都可以访问这个Cookie // Domain,子域,指定在该子域下才可以访问Cookie,例如要让Cookie在bbs.x-life.com下可以访问,但在news.x-life.com下不能访问,则可将domain设置成bbs.x-life.com // Secure,安全性,指定Cookie是否只能通过https协议访问,一般的Cookie使用HTTP协议既可访问,如果设置了Secure(没有值),则只有当使用https协议连接时cookie才可以被页面访问 // 注意:Cookie安全机制要求站点页面只能访问本站点的Cookie,不能访问其它站点的Cookie。同时,最好在设置Cookie时使用encodeURI对象进行URI编码,在取出Cookie时再使用decodeURI对其进行解码! function setCookie(name, value, expires, path, domain, secure) { var str = name + "=" + encodeURI(value);// 不要忘了在对应getCookie函数里面加上decodeURI方法 if (expires) { str += "; expires=" + expires.toGMTString(); } if (path) { str += "; path=" + path; } if (domain) { str += "; domain=" + domain; } if (secure) { str += "; secure"; } document.cookie = str; } // 删除Cookie // 没有删除Cookie的直接的方法,但可以变通一下来删除Cookie! function delCookie(cookieName) { var expires = new Date(); expires.setTime(expires.getTime() - 1);// 将expires设为一个过去的日期,浏览器会自动删除它 document.cookie = cookieName + "=; expires=" + expires.toGMTString(); } function getAllCookies() { return document.cookie; }
在java语句里面对Cookie操作:
package com.util; import java.util.HashMap; import java.util.Map; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Cookie操作 * * @author bokee * */ public class CookieUtil { /** * 添加Cookie * * @param response * @param name * Cookie名称 * @param value * Cookie值 * @param maxAge * Cookie周期 * @param path * 一个路径,在这个路径下面的页面才可以访问该Cookie,一般设为“/”,以表示同一个站点的所有页面都可以访问这个Cookie * @param domain * 子域,指定在该子域下才可以访问Cookie,例如要让Cookie在bbs.x-life.com下可以访问,但在news.x- * life.com下不能访问,则可将domain设置成bbs.x-life.com * @param secure * 安全性,指定Cookie是否只能通过https协议访问,一般的Cookie使用HTTP协议既可访问,如果设置了Secure( * 没有值),则只有当使用https协议连接时cookie才可以被页面访问 * 注意:Cookie安全机制要求站点页面只能访问本站点的Cookie * ,不能访问其它站点的Cookie。同时,最好在设置Cookie时使用encodeURI对象进行URI编码 * ,在取出Cookie时再使用decodeURI对其进行解码! */ public static void addCookie(HttpServletResponse response, String name, String value, int maxAge, String path, String domain, boolean secure) { if (name == null) return; Cookie cookie = new Cookie(name, URLEncoder.encode(value,"UTF-8")); //编码后写入Cookie,防止中文乱码 if(path!=null) cookie.setPath(path); if (maxAge > 0) cookie.setMaxAge(maxAge); if(domain!=null) cookie.setDomain(domain); cookie.setSecure(secure); response.addCookie(cookie); } /** * 根据名字获取cookie * * @param request * @param name * cookie名字 * @return */ public static Cookie getCookie(HttpServletRequest request, String name) { Cookie cookies[] = request.getCookies(); if (cookies == null || name == null || name.length() == 0) { return null; } for (int i = 0; i < cookies.length; i++) { if (name.equals(cookies[i].getName())) return cookies[i]; } return null; } /** * 通过name查询cookie里面的值,注意解码,防止中文乱码 * @param request * @param name * @return * @throws UnsupportedEncodingException */ public static String getCookieValueByName(HttpServletRequest request, String name) throws UnsupportedEncodingException { Cookie cookie=getCookie(request,name); if(cookie!=null) { String value=cookie.getValue(); return URLDecoder.decode(value,"UTF-8"); } return null; } /** * 删除Cookie * @param request * @param response * @param cookie */ public static void deleteCookie(HttpServletRequest request, HttpServletResponse response, Cookie cookie) { if (cookie != null) { cookie.setPath(getPath(request)); cookie.setValue(""); cookie.setMaxAge(0); response.addCookie(cookie); } } /** * 将cookie封装到Map里面 * * @param request * @return */ @SuppressWarnings("unused") private static Map<String, Cookie> ReadCookieMap(final 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; } private static String getPath(HttpServletRequest request) { String path = request.getContextPath(); return (path == null || path.length()==0) ? "/" : path; } }
到此!js 和java对Cookie的封装都完成了
参考文献地址:http://www.blogjava.net/fastunit/archive/2008/03/25/188534.html
http://www.open-open.com/lib/view/open1331278611374.html
相关文章推荐
- js操作cookie或url导致在java端编码问题
- jquery.cookie.js && java后台代码 操作cookie实现记住当前用户输入信息代码
- 用java操作cookie和用js操作cookie
- js/java 对cookie的操作
- js java操作COOKIE
- js和java cookie操作
- java和js中如何操作cookie
- js操作cookie
- JS 操作cookie 设置cookie、读取cookie、删除cookie
- Java 操作Cookie
- js操作cookie
- Java应用技巧:对于 Cookie 的操作详解
- js 操作 Cookie
- java对cookie的操作
- java对cookie的操作
- JS操作cookie以及本地存储(sessionStorage 和 localStorage )
- 6.游戏特别离不开脚本(3)-JS脚本操作java(直接解析JS公式,并非完整JS文件或者函数)
- Java对Cookie的操作
- js操作cookie
- java对cookie的操作