关于session(会话域)

什么是session?

据我个人理解,session就是一次会话,浏览器打开到关闭就是一次会话。浏览器向服务器发送第一次请求的时候,服务器会获取一个session对象,并把sessionid以 cookie的形式发送给浏览器,浏览器将sessionid保存在缓存中, 接下来的每一次请求,浏览器都会从缓存中取sessionid发送到服务器中去找对应的session对象,所以每次请求用的都是同一个session对象。只要浏览器不关闭,不管发送多少次请求,获取的都是同一个session对象。

关于session销毁

session有两个销毁机制:

超时机制

手动销毁

当浏览器关闭的时候,缓存中的sessionid就会消失,而服务器中的session对象依然存在,它会遵循超时机制,超出规定时间就会销毁,当然还可以手动销毁,通过以下方法可进行手动销毁:

session.invalidate();

session常用的方法:

              //获取session对象
              HttpSession session = request.getSession(false);
              //将值保存到session对象中
              session.setAttribute(key,value);
              //获取域中的值
              session.getAttribute(key);

为什么要使用session会话呢?

因为有些请求需要登录成功之后才能够访问的,就比如,我想访问部门列表,那我得先登录才能访问,不能直接访问部门列表 ,个人觉得,session会话就是为了登录而准备的。把登录成功的信息保存在session会话中,你想访问哪些请求,首先会判断,session中有没有登录的信息,如果有,就让你访问,如果没有,就让你登录再来访问。当然,如果你的项目中如果还有很多功能,比如 员工管理,订单管理等等,这几个功能都要通过session来判断是否有登录信息才能够访问,就得写好几个判断,为了节省代码 提高代码的灵活性复用性和安全性,可使用Filter过滤器,使用Filter完整的流程是:Filter对用户请求进行预处理,接着将请求交给Servlet进行处理并生成响应,最后Filter再对服务器响应进行后处理。可将判断登录信息的代码放到Filter中,进行过滤,可得劲儿。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值