about Cookie And Session basic

关于cookieSession的笔记

这篇文章很厉害
session中文翻译为会话,它表示浏览器窗口打开到关闭期间的一系列活动,或者是一类用来在客户端与服务器端之间保持连接状态的解决方案,又或者是解决方案的存储结构。
http连接是无状态的,每一个请求都独立。但是在http协议中可以用cookie来完成会话跟踪,而服务器端则使用session完成。需要注意session底层依赖cookie。

cookie是由键和值组成,一个键一个值。被服务器创建后随响应到浏览器,浏览器保存后,在下次请求发送回服务器。
向浏览器发送cookie可以使用如下方法:

Cookie c=new Cookie("key","value") ;
response.addCookie(c); 

获取cookie需要先获取所有cookie组成的cookie数组,然后在遍历cookie数组,通过cookie.getName()判断是否是需要的cookie,再使用getValue()取值。
关于cookie的setMaxAge方法可以设置cookie的存活时间,通过参数确定。参数是int类型,有三种情况:

  • 参数小于0,当关闭浏览器则杀死cookie。即不写进磁盘,只在内存中
  • 参数大于0,则在磁盘中保存参数秒
  • 参数为0,表示马上杀死cookie

    Session

    HttpSession是由javaWeb提供的对象。保存在服务器端。
    session是sevlet的域对象(request,ServletContext也是),所以它有setAttribute(),getAttribute(),removeAttribute()方法。
    session是jsp的内置对象,不用创建就可以直接使用。
    session创建时一定调用了request.getSession()或者是request.getSession(true)