首页 > 编程语言 >浅谈:Java Web中requset,session,application 的作用域及区别

浅谈:Java Web中requset,session,application 的作用域及区别

时间:2022-11-25 11:35:06浏览次数:48  
标签:Web 浅谈 会话 作用域 request application session 服务器

浅谈:Java Web中requset,session,application的作用域及区别

三者概述

requset概述:

request是表示一个请求,只要发出一个请求就会创建一个request
用处:常用于服务器间同一请求不同页面之间的参数传递,常应用于表单的控件值传递。

session概述:

服务器会为每个会话创建一个session对象,所以session中的数据可供当前会话中所有servlet共享。
会话:用户打开浏览器会话开始,直到关闭浏览器会话才会结束。一次会话期间只会创建一个session对象。
用处:常用于web开发中的登陆验证界面(当用户登录成功后浏览器分配其一个session键值对)。

application概述:

Application属性范围值,只要设置一次,则所有的网页窗口都可以取得数据。
ServletContext在服务器启动时创建,在服务器关闭时销毁,一个JavaWeb应用只创建一个ServletContext对象,所有的客户端在访问服务器时都共享同一个ServletContext对象;
用处:ServletContext对象一般用于在多个客户端间共享数据时使用;

三者共同作用

三者共同目的:

requset,session,application三者存在的意义就是前后端进行数据传输
三者使用各自的作用域进行传递数据和存储数据

三者共有的常用属性:

getAttribute()与setAttribute()

后端要通过getAttribute()进行数据的获取以及通过setAttribute()进行设置属性,然后数据被前端使用。
所以三者都可以通过 setAttribute() 赋值和 getAttribute() 取值。
同时还有其他类如removesetAttribute()等属性,不做详解。

三者主要区别

三者作用域不同

作用域大小为

requset(请求作用域)< session(会话作用域) < application(全局作用范围)

request:

第一个作用域是request,他仅在当前请求中有效。
作用域:一次HTTP请求到服务器处理结束,返回响应的整个过程。

session:

第二个作用域是session,他在当前会话有效。
作用域:当一台电脑上的同意浏览器对服务器进行多次访问的时候,在这多次访问之间传递信的信息就是session作用域的范围。

application:

第三个作用域是application,它所在的所有应用程序中都有效。
作用域:如果不进行手工删除,它们将一直可以使用,也就是当服务器开始到服务器结束的这段时间,application作用域中存储的数据都是有效的,所有用户均可使用。

request、session以及application这3个对象的作用域范围是逐个增加的:

  • request只在一个请求的范围内;
  • session 是在浏览器窗口的范围内;
  • application则是在整个服务器的运行过程中。

作用域选择不正确会有什么后果:

  • 作用域小了:不能在需要的场景获得数据。
  • 作用域大了:内存浪费。

如何正确的选择作用域

  • request:跟当前操作功能相关
  • session: 跟用户信息相关
  • application:跟项目全局信息相关----->京东配送地址

注意事项(备注&扩展)

request

request对象内数据存活范围是当客户端向服务器发送一个请求,服务器向客户端返回一个响应之后,该请求对象就被销毁了。之后再次发送的请求也无法获取之前request对象存放的任何数据。

session

session是服务器端对象,保存在服务器端。并且服务器可以将创建session后产生的sessionid通过一个cookie返回给客户端,以便下次验证。(session底层依赖于cookie)
它从浏览器发出第一个HTTP请求即可认为是会话的开始,但是会话结束的时间是不确定的,因为在浏览器关闭的时候并不会通知服务器,一般Tomcat设置的默认时间为120分钟,也可以进行设置,或者是强制结束当前会话。

其他

这三者的setAttribute与getAttribute方法都是在服务器端内部执行的,客户端不知道服务器端是否执行过这两个方法。

是学生,正在学习,自己遇到的问题写点博客,如有错误,请谅解,如果发现了错误可以评论一下。

标签:Web,浅谈,会话,作用域,request,application,session,服务器
From: https://www.cnblogs.com/zxeao/p/16924462.html

相关文章

  • Microsoft.NET.Sdk 和 Microsoft.NET.Sdk.Web 有什么区别
    “核心”SDK和WebSDK之间有什么区别,这些对通用主机应用程序有何影响?最重要的区别是:默认项目WebSDK具有不同的定义和globbing模式,用于将哪些文件包含在已发布......
  • 浅谈cookie、sessionStorage、localStorage的生命周期
    最近忙于毕业设计,要写一个用户行为分析平台,需要合理使用这三种技术来追踪用户行为,于是查询相关资料并做了些小测试来熟悉这三种技术。我将自己学习内容和使用时遇到的一些......
  • webpack练习中的坑
    记录下在练习搭建webpack中遇到的问题。1,今天照着B站学习时,发现同样的代码我本地运行报错如下TypeError:ClassconstructorServeCommandcannotbeinvokedwithout......
  • day1 idea tomacat创建javaweb项目
    一、1、新建java-->javaEE-->WebApplication()  2、在web-->WEB-INF目录下新建classes和lib文件夹,classes存放编译后的文件,lib存放相关jar包,File-->ProjectStructur......
  • javaweb2
    Servlet核心1.核心类与接口init:完成初始化操作只会执行一次没有配置1时才只会执行一次在实例类对象中配置(注解方式)@WebServlet(vlue="路径",loadonstartu......
  • webflux reactive-feign 分页的实现
    生产者respositorypackagecom.fengyun.medical.productservice.repositories;importcom.fengyun.medical.domain.Handbook;importorg.springframework.data.do......
  • JavaWeb+SVN+Maven+Tomcat +jenkins实现自动化部署
       在日常开发项目中常见的开发模式是使用代码库来存放我们的项目例如:SVN、Git、CVS等,采用Maven来进行项目管理而需要在测试和发布项目的时候需要手动打包然后部署到服......
  • asp.net core api 等调用webservice以及 处理返回值踩坑之路
    首先添加引用然他自动生成文件image.png点击goservices填写如​​http://192.168.1.5/Service1.asmx​​里面会加载出来记住名字如Service1Soap......
  • Java之HttpClient调用WebService接口发送短信源码实战
    摘要Java之HttpClient调用WebService接口发送短信源码实战一:接口文档二:WSDL三:HttpClient方法HttpClient方法一HttpClient方法二HttpClient方法三HttpClient方法四四:封装soap......
  • JWT(JSON Web Token)介绍与实践
    作者:迷彩JWT(JSONWebToken)介绍与实践JWT介绍Jsonwebtoken(JWT),根据官网的定义,是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC7519).该toke......