cookie与session的区别

1) cookie是保存在客户端的,javascript中,通过document.cookie可以查看当前domain以及path下的所有cookie属性及其值

网上有很多谈到如何获取cookie,设置cookie以及删除cookie的,在这里就不多说了

cookie适用于保存需要长时间保存的用户信息,利用想记住用户的用户名以及密码,让用户在一段时间内进入网站无需再次登录,则可以利用cookie来实现

如果不设置过期时间,则表示这个cookie生命周期为浏览器会话期间,只要关闭浏览器窗口,cookie就消失了。这种生命期为浏览会话期的cookie被称为会话cookie

注意:但有时cookie会被用户浏览器禁用

2) session是保存在服务器端的,服务器会用户创建一个session,用于存放信息,每一个session有一个sessionid,是每个session的唯一标识,服务器以cookie的方式存放在客户端,下次用户访问服务器时,浏览器将sessionid一起发送给服务器,服务器根据该id查询有关该次会话的所有信息

客户端仅保存sessionid,其他的所有会话信息都保存在服务器端,这样提高了安全性,但也增加了服务器端的内存开销。而服务器端有关该次会话的信息的有效期默认是半小时,可以设置有效期。

session比较适用于cookie被用户禁用,每次进入网站都需要登录的情况;或者是一些比较重要的网站,每次都需要登录;登录后便创建一个session,用于保存该次访问用户的信息。由于session也需要借助cookie来保存sessionid,因此若是cookie被禁用,则session也无法使用,因此服务器端得不到sessionid来查询有关该次会话的信息(尽管服务器端的信息仍然保存着)。

在jsp中,session是内置的对象,因此可以直接使用session并调用其函数

最常用的操作有:

1) 设置/修改属性值:session.setAttribute("attr", value);

2) 删除属性:session.removeAttribute("attr");

3) 获取属性值:session.getAttribute("attr");

4) 清空会话:session.clear();

5) 设置有效期:session.setMaxInactiveInterval(int seconds);

在servlet中,会话需要手动实例化;具体过程可参见

http://blog.sina.com.cn/s/blog_531101430100mw34.html      http://stevenjohn.iteye.com/blog/891195


jsp中,获取会话值,返回的是一个对象,需要将其转换成需要的类型才能使用,网上查到的大都使用强制转换;但我使用强制转换却一直没能成功,例子:

1) String user_id=(String)session.getAttribute("user_id");

2) String user_id=session.getAttribute("user_id").toString();

上面两种方式,第一种没能正确获得属性值,第二种则成功获取

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值