1.Cookie:
Cookie它是存储在客户端或者客户端浏览器上的文本文件,很容易就可以查看到.
所以,不能使用Cookie存储敏感数据,比如银行卡密码
不能使用Cookie来做必要的功能。
Cookie不能存储中文
使用URL编码来简介存储中文
username = URLEncoder.encode(username)
//解码
name = URLDecoder.decode(name)
2.Session
Session:会话
用户使用浏览器,进行一系列的访问,这一个过程就是一个会话
也就是说,多个请求共享一个会话
会话在第一次访问的时候就被创建
HttpSession:默认有效时间是30分钟
使用代码设置session的失效时间
session.setMaxInactiveInterval(100);
使用配置文件设置session的失效时间
200
让session立刻失效
session.invalidate();
注意:
当使用代码和配置文件同时配置session的失效时间的时候
以小的时间为准[注意,他们的单位都是分钟]
Session实现的机制:它是基于Cookie
当用户第一次访问的时候,会自动生成一个Cookie,用来记录当前Session的ID值。
这个Cookie的key是JSESSIONID value就是Session 的ID值
当Cookie被阻止,应该强制把JSESSIONID传过去,使用URL重写
3.Hidden
.隐藏表单域:,非常适合步需要大量数据存储的会话应用。
4.url 重写
为了防止用户禁用cookie,可以使用URL重写技术来实现会话跟踪!
url重写原理:当服务器程序调用request.getSession();代码时,其会先看request.getCookies()方法中有没有名为JSESSIONID的cookie带过来,如果没有,就看URL有没有被重写(即附带JSESSIONID),如果有,则从服务器中找key为JSESSIONID的session对象,如果都没有,则创建一个新的session。如果用户禁用了cookie,则只能通过URL重写方式实现会话跟踪!