session 创建和销毁过程

session 何时创建和销毁?

举个例子:一个jsp网站,假如有登录界面,我输入用户名密码登录网站就是创建session;如果没有登录界面,我直接进入主界面的时候,创建session。我关闭登录后的网站或者单击退出按钮就是销毁session。我的理解正确吗?

阅读 8.3k
3 个回答

Session和界面没任何关系
是服务器在内存中创建的一种为了保持HTTP状态的值

HTTP 无连接(因为会断开) 无状态
我没法知道你是 用户freewolf

只能靠Session和Cookie
来保存状态~

C 登陆界面
S 验证成功
S 创建Session
S 返回成功和SessionID
C 拿到SessionID
C 每次操作拿着SessionID
S 我根据SessionID知道你是谁
C 我要退出
S 销毁SessionId

Session超时也会失效 其实 和客户端一点关系都没有~

session(一般是个ID值)是存在数据库的,一般来说依赖于cookie(其他方式比如将用户id放在URL上),将sessionId保存在cookie,每次去服务器请求都会带上这个cookie,服务器就能获取到cookie(sessionId)从而获取到对应的用户数据。
当用户点击退出时,就清除这个cookie,这样再去请求服务器时获取不到对应的sessionId就是未登陆。
cookie有一个过期时间,过期后自动清除,这样服务器也获取不到sessionId也是未登录

你的理解差不多了,session其实就是一个特定时间的概念,用来记录用户访问站点到离开站点的这段时间,你说的关闭页面销毁session对象只适用于没有登录的场景,假如你用账号登录到站点的话你要退出登录或者关闭浏览器才能销毁session,单纯关闭页面并没有断开你的客户机与服务器的链接

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进