session与cookie的区别与使用
1、session:
当一个用户第一次访问某个网站的时候会自动创建HttpSession,每个用户可以访问本身具有的session。可以通过HttpSessionRequest对象的getSession方法获得httpsession,httpsession的setAttribute方法可以将一个值放入HttpSession中,通过调用HttpSession对象的getAtribute方法,同时传入属性名就可以获取保存在HttpSession中的对象。HttpSession放在服务器内存中,注意不要放入过大的对象。添加到HttpSession对象中的值可以是任意Java对象,这个对象最好实现了Serializable接口,这样serblet容器在必要的时候可以将其序列化到文件中,否则在序列化时就会出现异常。
2、cookie:
cookie有两种,一种是基于窗口的,浏览器窗口关闭后,就没有了;另外一种是将信息存储在一个临时文件中,并设置存在的时间。当用户通过浏览器和服务器建立一次会话后,会话id就会随响应信息返回存储在基于窗口的cookie中,意味着只要浏览器没有关闭,会话没有超时,下一次请求时这个会话ID又会提交给服务器,用于识别身份。会话中可以为用户保存信息,会话对象是在服务器内存中的,而基于窗口的cookie是在客户端内存中的,如果浏览器禁用了cookie,那么需要通过session进行会话跟踪。注意:在使用cookie时,不要在cookie中放置敏感信息,cookie的存储数据量有限(4K),不能将过多的内容存储在cookie中。