1.会话跟踪:是一种区分不同用户访问服务器的技术
2.会话跟踪产生的原因?
http协议的无状态性:当客户端1连接到服务器以后,完成了一次请求,那么http协议会断掉,如果当下次有请求到服务器的时候,有可能客户重新发了请求到服务器,也有可能是新用户发新的请求到服务器,由于Http协议没有任何的方式保留用户曾经发送过请求到服务器的信息,所以服务器是无法区分用户是新用户还是已经访问过服务器的用户
3.javaweb中会话跟踪技术的实现方式?
4种方式
a.session:是一种在服务器端保持数据的方式,会保存和会话跟踪相关的sessionid
b.cookie:是一种在客户端保持数据的方式,会保存和会话跟踪相关的sessionid
注意:要使用session和cookie来实现会话跟踪,这两种技术是相辅相成的缺一不可
问题:如何禁用会话跟踪技术
(1)让服务器中的session失效
(2)让客户端的cookie中的sessionid消失,关闭浏览器或者在客户端禁用cookie
(3)URL重写
(4)隐藏表单域
4.session的相关操作
setAttribute():保持数据
getAttribute():获取数据
getid():获取sessionID
getCreationTime():session的创建时间
getLastAccessedTime():最后访问时间
getMaxInactiveInterval():获取session的最大有效时间,默认是30分钟
setMaxInactiveInterval():设置session的最大有效时间
isNew():是否是一个新的session
Invalidate():使sessionid发生失效
5.cookie的相关操作:在javax.servlet.http.Cookie
实例化:Cookie cookie =new Cookie(key,value)
getMaxAge():获取cookie最大有效时间
setMaxAge():设置cookie最大有效时间
setValue()/getValue():设置/获取cookie中的数据
问题:session保持数据的时候可以保持任何数据类型;Cookie保持数据的时候只能保存字符串,为什么?
处于安全性考虑,session是运行在服务器端,访问的客户无法控制服务器中的内容;但是cookie是运行在客户端,普通用户的可以控制,所以不适宜给太多的功能保持复杂数据.