现在的位置: 首页 > 综合 > 正文

Servlet对Cookie、Session的管理

2013年11月04日 ⁄ 综合 ⁄ 共 1699字 ⁄ 字号 评论关闭

Cookie、Session、cache的区别之前已经做过解释,不再赘述(http://blog.csdn.net/lmdcszh/article/details/8986312)。这里重点总结一下Servlet对Cookie、Session的代码操作实现,作为一个基础是需要熟练运用的。


*************************************针对Cookie的操作**************************************************************************

创建一个cookie:键值对的形式

Cookie c1 = new Cookie("password", "123");
response.addCookie(c1);

如果想在客户端保留cookie文件,只需要设置一个有效的Cookie时间即可:

Cookie c2 = new Cookie("client_ip", request.getRemoteAddr());
		
//设置cookie的生命周期为一个小时,单位为秒,自动在客户端创建文本文件记录cookie
c2.setMaxAge(60*60);

response.addCookie(c2);

从cookie中读取值:循环Cookie数组

Cookie[] cook =request.getCookies();//用一个Cookie数组来接收  
  
for(int j=0;j<cook.length;j++){//通过循环来打印Cookie  
  
        cook[j].getName()://取cookie的名    
        cook[j].getValue()://去cookie的值  
  
}

删除cookie:

Cookie deleteNewCookie=new Cookie("newcookie",null); 
deleteNewCookie.setMaxAge(0); //删除该Cookie 
deleteNewCookie.setPath("/"); 
response.addCookie(deleteNewCookie); 

使用setMaxAge(int expiry)方法来设置Cookie的存在时间,参数expiry应是一个整数。正值表示cookie将在这么多秒以后失效。注意这个值是cookie将要存在的最大时间,而不是cookie现在的存在时间。负值表示当浏览器关闭时,Cookie将会被删除。零值则是要删除该Cookie。



*************************************针对Session的操作*************************************************************************

创建Session:

HttpSession session = request.getSession(true);
session.setAttribute("ip", request.getRemoteAddr());

获取Session:

HttpSession session = request.getSession(true);
String ip = (String)session.getAttribute("ip");
response.getWriter().println("ip=" + ip);

删除Session:

//清除Session里的某个属性
session.removeAttribute("sessionname") 
//Session失效.
session.invalidate()

另外,关闭页面后你的web容器会自动销毁session;可以在ServletContext 中放入一个用户池,登录后放入用户池。注销、cookie过期、session销毁都把用户从用户池中删除。



在Cookie中有很多文章,如:会话跟踪、会话浏览、重定向、不依赖与浏览器的会话跟踪和浏览(使用流输出),都是基于上面的基础,附上源码下载连接(http://download.csdn.net/detail/lmdcszh/5490919)。

抱歉!评论已关闭.