pageContext.setAttribute和session.setAttribute

backthought 2008-04-14 06:09:39

为什么pageContext有这样的方法?
pageContext.setAttribute("test","xxxxxxxxxxxxxxxxx",pageContext.SESSION_SCOPE);

不还是放pageContext里吗?
tks
...全文
1412 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
jerquer 2008-08-20
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 backthought 的回复:]
引用 5 楼 xyz20003 的回复:
pageContext.setAttribute("test","xxxxxxxxxxxxxxxxx",pageContext.SESSION_SCOPE);

估计是因为pageContext里保存了session,application,request这些东西,所以提供一个简便的方法直接调用的。

应该就是等同于session.setAttribute()


我试过了,不等同
[/Quote]

我试过了,等同,可以取到值的,你的方法有问题吧。
bobor_2008 2008-04-16
  • 打赏
  • 举报
回复
pageContext属性默认在当前页面是共享的
pageContext表示一个javax.servlet.jsp.PageContext对象。pageContext对象提供了对JSP页面内所有的对象及名字空间的访问,也就是说他可以访问到本页所在的session,也可以取本页面所在的application的某一属性值。

request.setAttribute()
session.setAttribute()
是根据前面的对象来设定范围的.
而pageContext是针对JSP页面的,可以设置在JSP页面进行传值的范围的.
比如你在JSP页面A.jsp中设置了:
pageContext.setAttribute("test","xxxxxxxxxxxxxxxxx",pageContext.APPLICATION_SCOPE);
那么你在JSP页面B.jsp中想得到它就得用.
pageContext.getAttribute("test",pageContext.APPLICATION_SCOPE);
backthought 2008-04-15
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 xyz20003 的回复:]
pageContext.setAttribute("test","xxxxxxxxxxxxxxxxx",pageContext.SESSION_SCOPE);

估计是因为pageContext里保存了session,application,request这些东西,所以提供一个简便的方法直接调用的。

应该就是等同于session.setAttribute()
[/Quote]

我试过了,不等同
临远 2008-04-15
  • 打赏
  • 举报
回复
pageContext.setAttribute("test","xxxxxxxxxxxxxxxxx",pageContext.SESSION_SCOPE);

估计是因为pageContext里保存了session,application,request这些东西,所以提供一个简便的方法直接调用的。

应该就是等同于session.setAttribute()
backthought 2008-04-15
  • 打赏
  • 举报
回复
up
backthought 2008-04-15
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 bobor_2008 的回复:]
pageContext.setAttribute("test","xxxxxxxxxxxxxxxxx",pageContext.SESSION_SCOPE);
pageContext.setAttribute("test","xxxxxxxxxxxxxxxxx",pageContext.PAGE_SCOPE);
pageContext.setAttribute("test","xxxxxxxxxxxxxxxxx",pageContext.REQUEST_SCOPE);
pageContext.setAttribute("test","xxxxxxxxxxxxxxxxx",pageContext.APPLICATION_SCOPE);

这些都是针对JSP页面进行设置某个值的属性范围的.
根据它后面的常量不用,作…
[/Quote]
不是根據前面的
pageContext.setAttribute()
request.setAttribute()
session.setAttribute()
來的嗎?
pageContext.setAttribute("test","xxxxxxxxxxxxxxxxx",pageContext.SESSION_SCOPE);并沒有放到session中
而且只有pageContext有這種三個參數的方法
bobor_2008 2008-04-15
  • 打赏
  • 举报
回复
pageContext.setAttribute("test","xxxxxxxxxxxxxxxxx",pageContext.SESSION_SCOPE);
pageContext.setAttribute("test","xxxxxxxxxxxxxxxxx",pageContext.PAGE_SCOPE);
pageContext.setAttribute("test","xxxxxxxxxxxxxxxxx",pageContext.REQUEST_SCOPE);
pageContext.setAttribute("test","xxxxxxxxxxxxxxxxx",pageContext.APPLICATION_SCOPE);

这些都是针对JSP页面进行设置某个值的属性范围的.
根据它后面的常量不用,作用范围也不一样.
backthought 2008-04-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wang8118 的回复:]
加上这个pageContext.SESSION_SCOPE之后,表示在整个session里都有效
[/Quote]
session中取不到.

您意思是不是
pageContext.setAttribute("test","xxxxxxxxxxxxxxxxx",pageContext.SESSION_SCOPE)等同于
session.setAttribute("test","xxxxxxxxxxxxxxxxx")?
梅小西Echo 2008-04-14
  • 打赏
  • 举报
回复
加上这个pageContext.SESSION_SCOPE之后,表示在整个session里都有效
nanjg 2008-04-14
  • 打赏
  • 举报
回复
局部 和 全局 之分

81,095

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧