1.会话跟踪:是一种区分不同用户访问服务器的技术

2.会话跟踪产生的原因?

  http协议的无状态性:当客户端1连接到服务器以后,完成了一次请求,那么http协议会断掉,如果当下次有请求到服务器的时候,有可能客户重新发了请求到服务器,也有可能是新用户发新的请求到服务器,由于Http协议没有任何的方式保留用户曾经发送过请求到服务器的信息,所以服务器是无法区分用户是新用户还是已经访问过服务器的用户

【JavaWeb】Javaweb会话跟踪

3.javaweb中会话跟踪技术的实现方式?

4种方式

a.session:是一种在服务器端保持数据的方式,会保存和会话跟踪相关的sessionid

b.cookie:是一种在客户端保持数据的方式,会保存和会话跟踪相关的sessionid

【JavaWeb】Javaweb会话跟踪

注意:要使用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是运行在客户端,普通用户的可以控制,所以不适宜给太多的功能保持复杂数据.

 

 

 

 

 

 

相关文章: