-
request、session 和 application的区别
request | 在当前请求中有效 |
session | 在当前会话中有效 |
application | 在所有应用程序中有效 |
作用域 | 意义 | 实现接口 |
request | HTTP请求内 | HttpServletRequest |
session | HTTP会话内 | HttpSession |
application | 服务器生命周期内 | ServletContext |
request
1.Web交互的最基本单位为HTTP请求,每个用户从进入网站到离开网站这段过程称为一个HTTP会话,一个服务器的运行过程中会有多个用户访问
2.一个HTTP请求的处理可能需要多个Servlet合作,几个Servlet之间可以通过HttpServletRequest接口的两个方法传递信息,方法如下
void setAttribute(String name, Object value) 将对象 value 以 name为名称保存到request作用域中
Object getAttribute(String name)从request作用域中取得指定名字的信息
这两种方法一般成对出现。都是在服务器端内部执行的,客户端不知道服务器端是否执行过。
3.doGet()、doPost()函数的第一个参数就是 HttpServletRequest对象, 使用这个对象的 setAttribute 即可传递信息。
session(会话作用域)
1.对象内数据的存活范围是当前浏览器页面的时间。只要浏览器窗口未关闭,session对象就一直存在。
2.Object session.getAttribute(“name”) 从session中获取信息
session.setAttribute(String name, Object value)向session中保存信息
HttpServletRequest.getSession()方法可以获得HttpSession对象
session HttpServletRequest.getSession()获取当前请求所在的session的对象
3.浏览器发出第一个HTTP请求即可认为会话开始,如果一定的时间内客户端没有反应,则认为会话结束。 Tomcat的默认值为120分钟,但这个值也可以通过HttpSession 的 setMaxInactiveInterval 方法来设置。
application(服务器启动到关闭的整段时间)
1.只要服务器没有关闭,application对象中的数据就一直存在,
2.Object getAttribute(String name) 从application中获取信息
void setAttribute(String name, Object value)向application作用域中设置信息
3.application作用域上的信息传递通过ServetContext实现
可以看到,每个作用域除了实现接口不同、意义不同之外,它们的使用方法和作用都是相同的, 都是通过 getAttribute 和 setAttribute 方法进行信息传递。
-
相关阅读:
2022杭电多校第六场题解
vue @click点击事件不生效
DataX实现mysql全量数据同步到hdfs
Java学习之常见易错点总结--第一期
2475. 数组中不等三元组的数目-快速排序+遍历求和
MongoDB快速上手
【Java SE】 详解java访问限定符
语文课内外杂志语文课内外杂志社语文课内外杂志社2022年第14期目录
c语言的基本类型有哪些
CNN模型合集 | Resnet变种-WideResnet解读
-
原文地址:https://blog.csdn.net/weixin_62275996/article/details/126168297