servlet中的session和cookie
2019-02-15 本文已影响0人
Kevin_Huang54
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失效的三种方式
- 长时间没有请求调用,时间可以通过容器设置
- controller调用invalidate()方法
- 容器关闭
servlet中cookie常用方法
- Cookie是一个类,可以new Cookie(键值对)
- request.getCookies,返回cookie[]
- setMaxAge(x秒),设置存活时间,设为0就是删除
- response.addCookie(cookie)