Java操做Session与Cookie

1,Java操做Session

Java操做Session很是简单,步骤以下java

1.1,在servlet中经过request获取session

 HttpSession session = request.getSession(true);浏览器

true表明当前没有创建session则建立一个session,并返回这个session服务器

false表明当前没有session,不作操做,返回nullcookie

默认为truesession

1.2,利用session对象设置属性或删除属性

添加dom

session.setAttribute("username", username);
session.setMaxInactiveInterval(60 * 30);  //默认为秒工具

删除spa

session.removeAttribute("username")3d

 

2,Java操做Cookie

Java操做Cookie就有些须要注意的地方了code

为此,创建一个操做cookie的工具类

CookieUtil.java

 1 package org.guangsoft.util;  2 
 3 import javax.servlet.http.Cookie;  4 import javax.servlet.http.HttpServletRequest;  5 import javax.servlet.http.HttpServletResponse;  6 
 7 /**
 8  *  9  * @author guanghe 10  */
11 public class CookieUtil 12 { 13     /**
14  * 设置cookie 15  * 16  * @param response 17  * @param key cookie名字 18  * @param value cookie值 19  * @param maxAge cookie生命周期 以秒为单位 20  * @param path cookie传递路径 21  * @param domain cookie域 22      */
23     public static void addCookie(HttpServletResponse response, 24             String key, String value, int maxAge, String path, String domain) 25  { 26         Cookie cookie = new Cookie(key, value); 27  cookie.setPath(path); 28  cookie.setDomain(domain); 29         if (maxAge > 0) 30  { 31  cookie.setMaxAge(maxAge); 32  } 33  response.addCookie(cookie); 34  } 35 
36     /**
37  * 根据名字获取cookie 38  * 39  * @param request 40  * @param name cookie名字 41  * @return
42      */
43     public static Cookie getCookieByName(HttpServletRequest request, String name) 44  { 45         Cookie cookies[] = request.getCookies(); 46         if (cookies != null) 47  { 48             for (int i = 0; i < cookies.length; i++) 49  { 50                 Cookie cookie = cookies[i]; 51                 if (name.equals(cookie.getName())) 52  { 53                     return cookie; 54  } 55  } 56  } 57         return null; 58  } 59 }

调用代码:

UserService.java

 1 public boolean setAutoLog(HttpServletRequest request,HttpServletResponse response, String username)  2  {  3 CookieUtil.addCookie(response, "username", username, 3600 * 24 * 3, "/manage/userServlet.action", "localhost");  4 return true;  5  }  6  7 public boolean logout(HttpServletRequest request,HttpServletResponse response, String username)  8  {  9 CookieUtil.addCookie(response,"username","",0, "/manage/userServlet.action", "localhost"); 10 return true; 11 }

 

严重提醒:删除Cookie时,只设置maxAge=0将不可以从浏览器中删除cookie,
* 由于一个Cookie应当属于一个path与domain,因此删除时,Cookie的这两个属性也必须设置。
* 误区:没有重视客户端发送到服务器端的cookie的path与domain值为空这个问题。
* 由于在登录系统时,设置了Cookie的path与domain属性的值,就误认为每次客户端请求时,都会把Cookie的
* 这两个属性也提交到服务器端,但系统并无把path与domain提交到服务器端(提交过来的只有Cookie的key,value值)。

相关文章
相关标签/搜索