servlet中的session和cookie

session和cookie的区别

  • 两者都是保持会话状态的方式
  • session储存在服务器,cookie储存在客户端
  • session需要一个sessionid来开启,一般储存在cookie中,由容器自行处理
  • cookie通过来回发送的key-value来保证会话状态,需要在controller中编码实现会话保持
  • cookie不太安全,密码、卡号等重要信息应储存在session
  • session会占用服务器资源,考虑性能时,应当使用cookie

servlet中session

  • request.getSession()——获得当前请求对应的session,或者新建一个session,cookie是request的一部分,容器根据cookie中的sessionid与现有的session匹配,返回session
  • request.getSession(false)——参数默认为true,当没有session时会new一个session,设为false则只返回现有session,没有则返回null,推荐使用
  • session.isNew()——判断是否是新建的session

session失效的三种方式

  1. 长时间没有请求调用,时间可以通过容器设置
  2. controller调用invalidate()方法
  3. 容器关闭

servlet中cookie常用方法

  • Cookie是一个类,可以new Cookie(键值对)
  • request.getCookies,返回cookie[]
  • setMaxAge(x秒),设置存活时间,设为0就是删除
  • response.addCookie(cookie)

你可能感兴趣的:(servlet中的session和cookie)