java 中 cookie 的详解及简单实例
这里有新鲜出炉的 Java 函数式编程, 程序狗速度看过来!
Java 程序设计语言
java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言, 是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 程序设计语言和 Java 平台 (即 JavaEE(j2ee), JavaME(j2me), JavaSE(j2se)) 的总称
这篇文章主要介绍了 java 中 cookie 的详解及简单实例的相关资料, 这里对 cookie 的建立与读取, 和设定 cookie 生命周期等详细介绍, 需要的朋友可以参考下
java 中 cookie 的详解
Java 对 cookie 的操作比较简单, 主要介绍下建立 cookie 和读取 cookie, 以及如何设定 cookie 的生命周期和 cookie 的路径问题
建立一个无生命周期的 cookie, 即随着浏览器的关闭即消失的 cookie, 代码如下
- HttpServletRequest
- request
- HttpServletResponse
- response
- Cookie
- cookie = new Cookie("cookiename","cookievalue");
- response.addCookie(cookie);
下面建立一个有生命周期的 cookie, 可以设置他的生命周期
- cookie = new Cookie("cookiename", "cookievalue");
- cookie.setMaxAge(3600);
- // 设置路径, 这个路径即该工程下都可以访问该 cookie
如果不设置路径, 那么只有设置该 cookie 路径及其子路径可以访问
- cookie.setPath("/");
- response.addCookie(cookie);
下面介绍如何读取 cookie, 读取 cookie 代码如下
- Cookie[]
- cookies = request.getCookies();// 这样便可以获取一个 cookie 数组
- for(Cookie
- cookie : cookies){
- cookie.getName();//
- get the cookie name
- cookie.getValue();
- //
- get the cookie value
- }
上面就是基本的读写 cookie 的操作我们在实际中最好进行一下封装, 比如增加一个 cookie, 我们关注的是 cookie 的 name,value, 生命周期, 所以进行封装一个函数, 当然还要传入一个 response 对象, addCookie()代码如下
- /**
- *
- 设置 cookie
- *
- @param response
- *
- @param name cookie 名字
- *
- @param value cookie 值
- *
- @param maxAge cookie 生命周期 以秒为单位
- */
- public static void addCookie(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 的 name, 我们便可以获取 cookie 的 value, 带着这个想法, 很容易想到将 cookie 封装到 Map 里面, 于是进行下面的封装
- /**
- *
- 根据名字获取 cookie
- *
- @param request
- *
- @param name cookie 名字
- *
- @return
- */
- public static Cookie getCookieByName(HttpServletRequest request, String name) {
- Map < String,
- Cookie > cookieMap = ReadCookieMap(request);
- if (cookieMap.containsKey(name)) {
- Cookie cookie = (Cookie) cookieMap.get(name);
- return cookie;
- } else {
- return null;
- }
- }
- /**
- *
- 将 cookie 封装到 Map 里面
- *
- @param request
- *
- @return
- */
- private static Map < String,
- Cookie > ReadCookieMap(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;
- }
来源: http://www.phperz.com/article/18/0207/358901.html