HTTP无状态
服务器无法判断这两次请是否是同一个客户端发过来的(线程不安全)
- 解决方法:会话跟踪技术
image.png
客户端第一次发请求给服务器,服务器获取session,获取不到则创建新的,然后响应客户端.
客户端第二次发请求时,会把SessionID带给服务器,服务器就能判断这次请求和上次某次请求是同一个客户端,从而进行客户端的区分.
常用API
request.getSession 获取当前会话,没有就创建新的
request.getSession(true) 效果和不带参数相同
request.getSession(false) 获取当前会话,没有就返回null,不会创建新的
session.getId() 获取sessionId
session.isNew 判断当前session是否是新的
session.getMaxInactiveInterval 会话失效时间(转为非激活状态,即会话失效)