java request.setAttribute和session.setAttribute有什么区别

 我来答
man0306
推荐于2017-10-03 · TA获得超过958个赞
知道小有建树答主
回答量:707
采纳率:33%
帮助的人:394万
展开全部
1,request.setAttribute(“curruser”,
curruser)这个方法是将curruser这个对象保存在request作用域中,然后在转发进入的页面就可以获取到你的值,如果你会一些框架的话,那些框架标签也可以获取到,比如struts标签,还有jstl。如果这你都不会的话,那么你可以在jsp页面编写java小脚本来获取:<%
User myuser =
(User)request.getAttribute("curruser")%>,在jsp页面显示值:<%=myuser.getName()%>。
2,session.setAttribute("curruser",
curruser)。这个方法和上面唯一的区别就是作用域,就是在你整个程序启动的时候,如果在session中保存了数据,那么在你这个无论你在哪个页面,在什么时候都可以获取到这个值,全局的,只要你的这个程序是启动的。session默认的过期时间是30分钟,过期无效,可以去修改这个值。

关于两者的作用域:

request的生命周期是request请求域,一个请求结束,则request结束
session的生命周期是session会话域,打开一个浏览器请求一个网站的页面后,Session开始,当session超过时间限制后,session注销而失效
或是人为使用session.invalidate();使用session失效;
或是关闭浏览器后,session还存在,但是这里已经无法获取session了,过一会它还是失效
更多追问追答
追问
sumbit  action算转发还是重定向
a标签算转发还是重定向
session.invalidate()使整个session存储的都失效吗
追答
session.invalidate()清空了内存中所有的session对象。
TableDI
2024-07-18 广告
VLOOKUP是Excel中用于垂直查找的函数,其基本用法包括四个参数:1. 查找值:即在数据表首列中需要搜索的值。2. 数据表:包含查找值的单元格区域或数组。3. 返回值所在列数:指定返回查询区域中第几列的值。4. 查找方式:选择精确匹配... 点击进入详情页
本回答由TableDI提供
帶妳丄天台
2014-10-20
知道答主
回答量:5
采纳率:0%
帮助的人:2.7万
展开全部
1、request.setAttribute 作用域是请求和被请求页面之间。
request.setAttribute()是只在此action的下一个forward需要使用的时候使用;
request.setAttribute()可存放的参数是String和Object。

2、session.setAttribute 作用域是整个会话期间,在所有的页面都使用这些数据的时候使用。会话期间指的是浏览器打开该页面,到关闭。 一般用于存放用户信息。
request.setAttribute()可存放的参数是String和Object。

主要就是这个区别,希望可以帮助到你
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式