session执行机制

ⅰ亾dé卋堺 提交于 2020-02-08 21:30:59

客户端第一次请求服务器

  • 服务端会产生一个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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!