黑马程序员技术交流社区

标题: 关于JSP [打印本页]

作者: 刘伯阳    时间: 2012-5-30 18:16
标题: 关于JSP
cookie和session的区别是什么。他们与服务器端是怎么连接的?他们保存在服务器端还是在客户端?
作者: 黄捷    时间: 2012-5-30 18:23
cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。同时我们也看到,由于采用服务器端保持状态的方案在客户端也需要保存一个标识,所以session机制可能需要借助于cookie机制来达到保存标识的目的,但实际上它还有其他选择。

作者: 黑马张健    时间: 2012-5-30 18:23
cookie把信息保存在客户端。
session把信息保存在服务器端。但会随着浏览器的关闭而失效。
作者: 黑马-唐磊    时间: 2012-5-30 19:17
本帖最后由 黑马-唐磊 于 2012-5-30 19:25 编辑

Cookie是客户端技术,服务器端可以获得请求中的Cookie.首先Cookie 是一个 key-value  ---- public Cookie(String name,String value),setValue与getValue方法 ---- 用来存取Cookie对象里面值.setMaxAge与getMaxAge方法(单位:秒)  ---- 用来设置和获取Cookie 的存在时长,当没有设置Cookie时限时,默认不产生Cookie文件.

Session是服务器端技术,服务器端会为每一个浏览器创建单独Session,Session 每个浏览器对应一个,存放数据 .浏览器A 访问 服务器端 ---- 会为A创建一个Session对象 ----- JsessionId(32位) 唯一的,服务器端 以Cookie方式 将jsessionid回写给浏览器
下次浏览器在访问服务器时候 自动携带 jsessionid ----- 对应Session对象.

Cookie和Session的生命周期
Cookie对象由服务器创建的,Cookie会通过resp的addCookie写回浏览器端,如果说你不设置maxAge,那么这个Cookie是一个会话(浏览器打开产生会话,浏览器关闭,终止会话)级Cookie,浏览器关闭,客户端Cookie就消失,如果你设置了maxAge,Cookie会被存储到硬盘上,那么Cookie会在到期后自动删除!服务器端不保存Cookie
Session由服务器端创建,会以一个唯一sessionId标识,session默认存活时间30分钟(如果客户端30分钟内没有访问过Session,那么Session将过期),Session可以设置过期时间
setMaxInactiveInterval(int interval)
          Specifies the time, in seconds, between client requests before the servlet container will invalidate this session.



作者: 右眼会动的人    时间: 2012-5-31 20:54
楼上正解
作者: 李东城    时间: 2013-2-16 01:12
cookie 和session 的区别:

1、cookie数据存放在客户的浏览器上,session数据放在服务器上。

2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗
   考虑到安全应当使用session

3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
   考虑到减轻服务器性能方面,应当使用COOKIE

4、单个cookie在客户端的限制是3K,就是说一个站点在客户端存放的COOKIE不能3K。

5、所以个人建议:
   将登陆信息等重要信息存放为SESSION
   其他信息如果需要保留,可以放在COOKIE中




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2