JavaWeb基础-Session的简单学习

什么是Session

 Session称为是一次会话,Cookie将用户产生的私有数据保存到浏览器端,Session将用户产生的私有数据保存到服务端。注意:一个浏览器独占一个Session对象。因此,在需要保存用户数据时候,服务程序可以将用户数据写到session对象中,当用户使用浏览器访问其他程序时,其他程序可以从用户的Session中取出该用户的数据,为用户服务。

为什么有Cookie还要有Session

Cookie局限性:
 Cookie保存的数据是有个数和大小的限制;
 数据保存在客户端浏览器上(相对不是很安全);
Session优势:
 Session在数据的保存时,没有个数和大小的限制
 数据是保存到服务器上(相对比较安全)

Session如何保存用户数据

 Session对象由服务器创建,开发人员可以随意调用request对象的getSession方法得到Session对象。
在这里插入图片描述

Session的实现原理

Session的原理分析:
 服务器是如何实现一个Session为一个用户浏览器服务的?
在这里插入图片描述
Session的实现原理:
基于Cookie的,基于Cookie回写了一个Session的ID。

Session作为域对象来存取数据

Session作为域对象的API

向Session中存入数据
在这里插入图片描述
向Session域中获取数据
在这里插入图片描述
从Session域中移除数据
在这里插入图片描述

Session作为域对象的作用范围

 Session作为域对象,作用范围就是一次会话的范围。一次会话,指的是用户打开浏览器点击多个超链接,访问服务器资源,到最后关闭浏览器的过程。

Servlet的数据访问范围的总结

Servlet的域对象的总结

请求范围(ServletRequest)

何时创建金和销毁的:
 创建:当用户向服务器发送一次请求,服务器创建一个request对象。
 销毁:当服务器对这次请求做出了响应,服务器就会销毁这个request。
如何存取数据:
 存数据:
  void setAttribute(String name,Object value);
 取数据:
  Object getAttribute(String name);
作用范围:
 一次请求。(转发就是一次请求)

会话范围(HttpSession)

何时创建金和销毁的:
 创建:服务器端==第一次调用getSession()==方法的时候。
 销毁:三种情况
 Session过期,默认的过期时间30分钟。(可以在web.xml中配置timeout时间)
 非正常关闭服务器。(直接销毁Session)
 正常关闭服务器。(Session会被序列化)
 手动调用Session.invalidate();
如何存取数据:
 存数据:
  void setAttribute(String name,Object value);
 取数据:
  Object getAttribute(String name);
作用范围:
 一次会话(多次请求)

应用范围(ServletContext)

何时创建金和销毁的:
 创建:服务器端启动的时候创建,为每个web项目创建一个单独ServletContext对象。
 销毁:在服务器关闭的时候,或者项目从服务器中移除的时候。
如何存取数据:
 存数据:
  void setAttribute(String name,Object value);
 取数据:
  Object getAttribute(String name);
作用范围:
 整个应用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值