一、Servlet三大作用域

servlet三大作用域:request,session,application(ServletContext)

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

a.用处:

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

b.常用方法:

request.setAttribute();
request.getAttribute();
request.removeAttribute();
request.getParameter().

2. Session
  服务器为每个会话创建一个session对象,所以session中的数据可供当前会话中所有servlet共享。作用域:会话从用户打开浏览器开始,直到关闭浏览器才结束,一次会话期间只会创建一个session对象。

a.用处:

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

b.常用方法:

session.setAttribute();
session.getAttribute();
session.removeAttribute();

在Servlet直接获取session:

HttpSession session = request.getSession();

JSP页面中直接使用(session属于JSP九大内置对象之一):

<%session.serAttribute("name","admin")%>

c.session被销毁

  • 1)session超时;
  • 2)浏览器关闭后,再也访问不到和该浏览器对应的session,它会在超时之后被销毁;
  • 3)调用 session.invalidate();

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

3. Application(ServletContext)
  ServletContext在 服务器启动时创建,服务器关闭时销毁。一个JavaWeb应用只创建一个ServletContext对象,所有的浏览器在访问服务器时都共享同一个ServletContext对象,ServletContext对象一般用于在多个浏览器间共享数据时使用。

Servlet中获取Application对象:

 ServletContext serContext = this.getServletContext();serContext .setAttribute("name", "kaixuan");    //设置一个值进去serContext .getAttribute("name");      //获取键值对

备注:ServletContext同属于JSP九大内置对象之一,在JSP页面中可以直接使用

4. 作用域对象共享数据:

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

二、作用域总结

1. 生命周期

  • request:只作用于当前一次请求
  • session:一次会话(多次请求)
  • application:项目的启动到结束

2. 作用范围

  • requset:所有被请求转发的Servlet
  • session:所有Servlet(当前浏览器)
  • application:所有Servlet(所有浏览器都行)

3. 正确选择作用域

  • request:跟当前操作功能相关
  • session:跟用户信息相关,如登录信息、银行账号
  • application:跟项目全局信息相关,如:京东配送地址

如果选择的作用域不够准确,会造成内存浪费。

4. 测试作用域生命周期

验证

测试过程:新建项目部署到Tomcat,浏览器访问,F5多次刷新,中途换浏览器访问

测试结果:request的计数值始终是1,session的技术值当换了浏览器后从1开始,Application的计数值一直相加。

Servlet三大作用域相关推荐

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

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

  2. Web三大组件的注册——Servlet、Filter、Listener(监听三大作用域: ServletContext、HttpSession、ServletRequest )

    Web三大组件的注册 Servlet @WebServlet("/user.action") <servlet> </servlet> <servle ...

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

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

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

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

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

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

  6. Spring Boot注册Servlet三大组件(Servlet, Filter, Listener)

    Spring Boot默认使用的Tomcat的Servlet容器,这个容器我们可以自己替换,比如替换成支持JSP的Servlet容器,这个容器已经帮我们注册好了一个Servlet(Dispatcher ...

  7. Spring Boot基础学习笔记13:路径扫描整合Servlet三大组件

    文章目录 零.学习目标 一.创建Spring Boot项目 - IntegrateThreeComponents02 二.使用路径扫描方式整合Servlet三大组件 (一)创建MyServlet类 ( ...

  8. Spring Boot基础学习笔记12:组件注册整合Servlet三大组件

    文章目录 零.学习目标 一.整合Servlet三大组件概述 (一)组件注册整合Servlet三大组件 (二)路径扫描整合Servlet三大组件 二.创建Spring Boot项目 - Integrat ...

  9. Servlet四大作用域

    Servlet四大作用域 Appliccation(ServletContext) 生命周期 在启动Web项目时创建,代表整个web项目,是其中最大的作用域,当服务关闭或时项目停止时被销毁 作用域范围 ...

  10. Spring Boot怎么样注册Servlet三大组件[Servlet、Filter、Listener]

    前言 由于SpringBoot默认是以jar包的方式启动嵌入式的Servlet容器来启动SpringBoot的web应用,没有web.xml文件. 注册三大组件用以下方式 一.ServletRegis ...

最新文章

  1. IOS客户端rtmp
  2. Session与Cookie
  3. 将若干字符串按字母顺序(由小到大)输出(用指针)
  4. #pragma multi_compile_fwdbase会增加很多个shader variants
  5. 腾讯技术直播间 | 零代码打造智能对话机器人
  6. 前端学习(2547):数据代理
  7. python table对象_(RPA学习):Python-docx 常用方法
  8. 替换WordPress调用的Google前端库为360镜像的库
  9. python筛选csv数据_pandas数据筛选和csv操作的实现方法
  10. IP 层收发报文简要剖析1-ip报文的输入
  11. 听我讲完 redo log、binlog 原理,面试官老脸一红!
  12. 关于阿里巴巴发布普惠体的一些思考
  13. VS2017配置opencv-c++
  14. 使用Nssm部署Exe程序为服务
  15. swift code银行代码怎么查询呢?
  16. zktime 协议_ZKTiMe5.0考勤管理系统使用介绍(1.3版).pdf
  17. 制造业智能工厂车间无线工业物联网解决方案
  18. Tkinter GUI设计中文文档
  19. “数据打通”不等于“数据共融”,智能数据营销解决方案了解一下
  20. 雷达革命,截止日期以及到达第四维度

热门文章

  1. el-table中的表格的相同项合并(单元格合并),包含多层合并
  2. linux ftp客户端 pasv 227,FileZilla客户端连接腾讯云FTP服务器时出现“227 Entering Passive Mode”...
  3. arm板linux内核移植,ARM开发板上uClinux内核移植
  4. 顶级在线图片处理工具Photopea
  5. CSV读取大文件报错_csv.Error: field larger than field limit
  6. LeetCode上的各种股票最大收益
  7. 加拿大比索大学计算机科学硕士,来悉尼大学恍恍惚惚一年后,我给大家吐血整理了经验贴…....
  8. 教程:如何制作一个多功能U盘
  9. C#使用selenium写爬虫提高速度的关键
  10. discuz分类信息模版PHP,Discuz 社区分类信息模板使用教程