java对cookie的操作
话不多说,直接进入正题。java对cookie的操作比较简单,主要介绍下建立cookie和读取cookie,以及如何设定cookie的生命周期和cookie的路径问题。
(1)建立一个无生命周期的cookie,即随着浏览器的关闭即消失的cookie,代码如下
1 2 3 4 |
|
(2)下面建立一个有生命周期的cookie,可以设置他的生命周期
1 2 3 4 5 6 7 8 |
|
下面介绍如何读取cookie,读取cookie代码如下
1 2 3 4 5 |
|
上面就是基本的读写cookie的操作。我们在实际中最好进行一下封装,比如增加一个cookie,我们关注的是cookie的name,value,生命周期,所以进行封装一个函数,当然还要传入一个response对象,addCookie()代码如下
1 2 3 4 5 6 7 8 9 10 11 12 13 |
* @author www.quzhuanpan.com
|
读取cookie的时候,为了方便我们的操作,我们希望封装一个函数,只要我们提供cookie的name,我们便可以获取cookie的value,带着这个想法,很容易想到将cookie封装到Map里面,于是进行下面的封装
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
* @author www.quzhuanpan.com
|
下面是我开发:去转盘网时编写自动登录时候所写的cookie工具类,代码如下:
/** * cookie的增加、删除、查询 * @author www.quzhuanpan.com */ public class CookieUtils { public static final String USER_COOKIE = "user.cookie"; // 添加一个cookie public Cookie addCookie(User user) { Cookie cookie = new Cookie(USER_COOKIE, user.getUsername() + "," + user.getPassword()); //System.out.println("添加cookie" + cookie.toString()); cookie.setMaxAge(60 * 60 * 24 * 14);// cookie保存两周 return cookie; } // 得到cookie public boolean getCookie(HttpServletRequest request, LoginService loginService) throws Exception { User user = null; boolean flag = false; Cookie[] cookies = request.getCookies(); if (cookies != null) { for (Cookie cookie : cookies) { if (CookieUtils.USER_COOKIE.equals(cookie.getName())) { String value = cookie.getValue(); if (StringUtils.isNotBlank(value)) { String[] split = value.split(","); String username = split[0]; String password = split[1]; user = loginService.login2(username, password); if (user != null) { HttpSession session = request.getSession(); session.setAttribute(CodeConst.USERINSESSION, user);// 添加用户到session中 flag = true; } } } if(flag){ break; } } } return false; } // 删除cookie public static Cookie delCookie(HttpServletRequest request) { Cookie[] cookies = request.getCookies(); if (cookies != null) { for (Cookie cookie : cookies) { if (USER_COOKIE.equals(cookie.getName())) { cookie.setValue(" "); cookie.setMaxAge(0); return cookie; } } } return null; } }
想了解跟多技术:请关注:www.quzhuanpan.com。