简介

servlet有三大作用域对象:request、session、application

类型 对象
HttpServletRequest request
HttpSession session
ServletContext application

作用域对象共享数据相关的方法:

  • 设置作用域中的共享数据:作用域对象.setAttribute(String name,Object value);
  • 获取作用域中的共享数据:Object value = 作用域对象.getAttribute(String name);
  • 删除作用域中指定的共享数据:作用域对象.removeAttribute(String name);

注意:在哪个作用域中设置共享数据,就只能从该作用域中取出数据。

request

request表示一个请求,只要发出一个请求就会创建一个request,它的作用域仅在当前请求中有效,如果Web组件之间需要共享同一个请求中的数据,只能使用请求转发。
每一次请求都是一个新的request对象,如果在web组件之间需要共享同一个请求中的数据,只能使用请求转发。

应用场景:

  • 用于服务器间同一请求不同页面之间的参数传递
  • 用于表单的控件值传递

session

服务器为每个会话创建一个session对象,所以session中的数据可供当前会话中的所有servlet共享。
每一次会话都是一个新的session对象,如果需要在一次会话中多个请求之间需要共享数据,只能使用session。
会话从用户打开浏览器开始,直到关闭浏览器才结束,一次会话期间只会创建一个session对象。

session是服务器端对象,保存在服务器端,并且服务器可以将创建session后产生的 sessionid 通过一个 cookie 返回给客户端,以便下次验证。(session底层依赖于cookie)。

应用场景:

  • 用于web开发中的登陆验证
  • 用于电商网站购物车功能

session销毁的场景:

  • session超时;
  • 浏览器关闭后,session会在超时之后被销毁;
  • 调用 session.invalidate()方法;

application

application在服务器启动时创建,服务器关闭时销毁。
application表示一个应用,在一个应用中有且只有一个application对象,作用于整个web应用,可以实现多次会话之间的数据共享。

获取ServletContext对象的方式:

  • 在servlet类中:super.getServletContext();
  • 通过请求对象来获取:request.getServletContext();
  • 通过session对象来获取:request.getSession().getServletContext();
    注意点:无论是哪一种方式,获取的都是同一个ServletContext对象

Servlet作用域对象相关推荐

  1. JSP九大内置对象和四大作用域和Servlet的三大作用域对象

    一.JSP九大内置对象:内置对象(又叫隐含对象,有9个内置对象):不需要预先声明就可以在脚本代码和表达式中随意使用 内置对象特点: 由JSP规范提供,不用编写者实例化. 通过Web容器实现和管理 所有 ...

  2. Web之间跳转和信息共享、Servlet的三大作用域对象、动态网页JSP

    一:Web之间跳转和信息共享 01.为什么需要Servlet之间的交互 Web组件(Servlet/JSP)的交互:Web组件之间的跳转,数据共享.为什么Web组件之间需要跳转,需要数据共享.![we ...

  3. java简述会话对象的生命周期_简述Java Web三大作用域对象

    Java Web三大作用域对象 这三个对象的作用域和生命周期--从上往下依次递增: 上面最小,下面最大. 1.HttpServletRequest--请求对象 HttpServletRequest是生 ...

  4. SpringMVC中使用作用域对象完成数据的流转

    文章目录 SpringMVC中使用作用域对象完成数据的流转 [1] 作用域对象复习 [2] SpringMVC中使用作用域对象流转数据 [3] SpringMVC的Model对象的使用 SpringM ...

  5. jsp和html的作用域,JSP(二):JSP九大内置对象、四个作用域对象

    jsp的九大内置对象: 内置对象: jsp文件在转译成其对应的Servlet文件的时候自动生成的并声明的对象.我们在jsp页面中直接使用即可. 注意: 内置对象在jsp页面中使用,使用局部代码块或者脚 ...

  6. java--servlet中三大作用域对象

    介绍: 三大作用域对象就是Servlet支持存储数据的三大对象. 分别是HttpServletRequest.HttpSession.ServletContext(application) reque ...

  7. Spring MVC 响应数据、作用域对象

    紧耦方式完成响应: 使用:在单元方法的形参中声明request对象或者response对象,使用request对象完成转发,使用response对象完成直接响应或者重定向. 注意:使用这两种方式,单元 ...

  8. Spring MVC框架:第二章:视图解析器和@RequestMapping注解使用在类级别及获取原生Servlet API对象

    SpringMVC使用细节 第一节 视图解析器 通过HelloWorld程序我们看到了handler方法的返回值表示: 请求处理完成后,请SpringMVC执行一个请求转发.转发的地址就是handle ...

  9. Java Web之Servlet的三大常用作用域对象及其使用方法

    马克一下这篇文章 https://www.cnblogs.com/yunquan/p/10230947.html

  10. 关于四大作用域对象的总结

    一.application(ServletContext) 1.生命周期:当Web应用被加载进容器时创建代表整个web应用的application对象,当服务器关闭或Web应用被移除时,applica ...

最新文章

  1. Magento(麦进斗)安装问题
  2. 2018.8.17提高B组模拟考试
  3. arduino char*转string_【201期】面试官:String长度有限制吗?是多少?还好我看过...
  4. JZOJ 3453【NOIP2013中秋节模拟】连通块
  5. 适合pythonpandas的软件_适合 Python 入门的 8 款强大工具!
  6. [转]蓝牙基带数据传输机理分析
  7. android格式化时间中文版,Android 仿微信聊天时间格式化显示功能
  8. leetcode - 343. 整数拆分
  9. Mysql运维管理-Mysql增量备份及分库分表备份数据恢复实战12
  10. 从未在一起更让人遗憾_从未在一起和最终没有在一起,哪个更遗憾?
  11. android Camera 中的相关概念
  12. 深入理解Java虚拟机--笔记1
  13. LeetCode刷题指南与答案
  14. 揭秘淘宝286亿海量图片存储与处理架构,海量小文件存储的解决方案
  15. 计算机专业毕业后大致的工作方向
  16. linux usb gadget 日志
  17. MySql 数据库 管理员密码忘记怎么办?
  18. 判断一个多边形是凸多边形还是凹多边形
  19. 生成微信支付二维码及微信支付
  20. 用Python一秒生成复古像素图片

热门文章

  1. 对序列化器、“对象”的理解
  2. macOS Big Sur 11.6 (20G165) 正式版 DMG、ISO、IPSW 下载
  3. C语言中宏定义函数的运算优先级问题
  4. 低熵加壳malware
  5. [《所遇随心》偶感小记]2012年8月28日
  6. iOS APP审核注意事项
  7. 关于用ADS设计PA中电容的选择
  8. 未得冠军的运动员也有教练——Leo鉴书71
  9. 手把手教你如何架设一个属于自己的Discuz论坛---------详细过程-----简单易懂------速看!!!!
  10. 新一代至强CPU加速GBase 8a MPP,GBase GCDW云数据仓库助力行业迎接数字化转型新挑战