Servlet三大作用域
一、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三大作用域相关推荐
- JSP九大内置对象和四大作用域和Servlet的三大作用域对象
一.JSP九大内置对象:内置对象(又叫隐含对象,有9个内置对象):不需要预先声明就可以在脚本代码和表达式中随意使用 内置对象特点: 由JSP规范提供,不用编写者实例化. 通过Web容器实现和管理 所有 ...
- Web三大组件的注册——Servlet、Filter、Listener(监听三大作用域: ServletContext、HttpSession、ServletRequest )
Web三大组件的注册 Servlet @WebServlet("/user.action") <servlet> </servlet> <servle ...
- Web之间跳转和信息共享、Servlet的三大作用域对象、动态网页JSP
一:Web之间跳转和信息共享 01.为什么需要Servlet之间的交互 Web组件(Servlet/JSP)的交互:Web组件之间的跳转,数据共享.为什么Web组件之间需要跳转,需要数据共享.![we ...
- java简述会话对象的生命周期_简述Java Web三大作用域对象
Java Web三大作用域对象 这三个对象的作用域和生命周期--从上往下依次递增: 上面最小,下面最大. 1.HttpServletRequest--请求对象 HttpServletRequest是生 ...
- java--servlet中三大作用域对象
介绍: 三大作用域对象就是Servlet支持存储数据的三大对象. 分别是HttpServletRequest.HttpSession.ServletContext(application) reque ...
- Spring Boot注册Servlet三大组件(Servlet, Filter, Listener)
Spring Boot默认使用的Tomcat的Servlet容器,这个容器我们可以自己替换,比如替换成支持JSP的Servlet容器,这个容器已经帮我们注册好了一个Servlet(Dispatcher ...
- Spring Boot基础学习笔记13:路径扫描整合Servlet三大组件
文章目录 零.学习目标 一.创建Spring Boot项目 - IntegrateThreeComponents02 二.使用路径扫描方式整合Servlet三大组件 (一)创建MyServlet类 ( ...
- Spring Boot基础学习笔记12:组件注册整合Servlet三大组件
文章目录 零.学习目标 一.整合Servlet三大组件概述 (一)组件注册整合Servlet三大组件 (二)路径扫描整合Servlet三大组件 二.创建Spring Boot项目 - Integrat ...
- Servlet四大作用域
Servlet四大作用域 Appliccation(ServletContext) 生命周期 在启动Web项目时创建,代表整个web项目,是其中最大的作用域,当服务关闭或时项目停止时被销毁 作用域范围 ...
- Spring Boot怎么样注册Servlet三大组件[Servlet、Filter、Listener]
前言 由于SpringBoot默认是以jar包的方式启动嵌入式的Servlet容器来启动SpringBoot的web应用,没有web.xml文件. 注册三大组件用以下方式 一.ServletRegis ...
最新文章
- IOS客户端rtmp
- Session与Cookie
- 将若干字符串按字母顺序(由小到大)输出(用指针)
- #pragma multi_compile_fwdbase会增加很多个shader variants
- 腾讯技术直播间 | 零代码打造智能对话机器人
- 前端学习(2547):数据代理
- python table对象_(RPA学习):Python-docx 常用方法
- 替换WordPress调用的Google前端库为360镜像的库
- python筛选csv数据_pandas数据筛选和csv操作的实现方法
- IP 层收发报文简要剖析1-ip报文的输入
- 听我讲完 redo log、binlog 原理,面试官老脸一红!
- 关于阿里巴巴发布普惠体的一些思考
- VS2017配置opencv-c++
- 使用Nssm部署Exe程序为服务
- swift code银行代码怎么查询呢?
- zktime 协议_ZKTiMe5.0考勤管理系统使用介绍(1.3版).pdf
- 制造业智能工厂车间无线工业物联网解决方案
- Tkinter GUI设计中文文档
- “数据打通”不等于“数据共融”,智能数据营销解决方案了解一下
- 雷达革命,截止日期以及到达第四维度
热门文章
- el-table中的表格的相同项合并(单元格合并),包含多层合并
- linux ftp客户端 pasv 227,FileZilla客户端连接腾讯云FTP服务器时出现“227 Entering Passive Mode”...
- arm板linux内核移植,ARM开发板上uClinux内核移植
- 顶级在线图片处理工具Photopea
- CSV读取大文件报错_csv.Error: field larger than field limit
- LeetCode上的各种股票最大收益
- 加拿大比索大学计算机科学硕士,来悉尼大学恍恍惚惚一年后,我给大家吐血整理了经验贴…....
- 教程:如何制作一个多功能U盘
- C#使用selenium写爬虫提高速度的关键
- discuz分类信息模版PHP,Discuz 社区分类信息模板使用教程