session执行机制

客户端第一次请求服务器

  • 服务端会产生一个session对象(用户保存该客户的信息);

  • 每个session对象都会有一个唯一的sessionID(用户区分其他session);

  • 服务端会又会产生一个cookie,并且该cookie的name=JSESSIONID,value=服务端sessionID的值;

  • 然后服务端会在响应客户端的同时将该cookie发送给客户端;

  • 至此,客户端就有了一个cookie(JSESSIONID);

    客户端的cookie和服务端的session一一对应 :
    (JSESSIONID - sessionID)

**

客户端第二次/n此访问服务器

  • 服务端会先用客户端cookie中的JSESSIONID 去服务端的session中匹配sessionid,
  • 如果匹配成功(cookie jsessionid和sessionid ),说明此用户不是第一次访问,无需登录

总结:

第一次 客户请求时 产生一个sessionid 并复制给cookie 的jsessionid
然后 发跟踪客户端。
最终 通过session的sessionid-cookie的jsessionid

扩展

session常用方法:


getId():  //获取sessionId
bolean isNew();//判断是否是 新用户(第一次访问)
void invalitate(): //使session失效 (推出登录,注销)
setAttribute(); 
getAttribute();
void setMaxInactiveInterval()//设置最大有效 非活动时间
int getMaxInactioveInterval():  // 获取最大有效 非活动时间

//实例
String name = (String)session.getAttribute("name");//取session

session.setAttribute("name", name);//存session

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值