servlet问题

xrealx 2008-11-03 10:34:44
有个问题想问
<jsp:useBean ...scope="request"
这个scope有存在的必要么?
request是生命周期就是到页面结束
为了达到request延续的目的需要使用forward()这样才能将当前request的东西传递到下个页面的request中。
这样不就可以用session代替了么??
如果session代替了,那这个还有什么用
...全文
79 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
huoyin 2008-11-03
  • 打赏
  • 举报
回复
request中保存的数据生命周期相对短一点,一般只会保存与此请求相关的数据。

session中保存的数据生命周期相对长一点,一般保存同一个用户的多个request只见共享的数据,

request和session尤其不同的作用,如果把数据都保存到request中,这样在多个request之间共享数据就比较麻烦了;同样如果把数据都保存到session中,这样session中保存的数据会快速增长,对内存消耗太大,如果要减少内存消耗,不得不处理session中的数据释放的问题。
fengfeng925 2008-11-03
  • 打赏
  • 举报
回复
[Quote=引用楼主 xrealx 的帖子:]
有个问题想问
<jsp:useBean ...scope="request"
这个scope有存在的必要么?
request是生命周期就是到页面结束
为了达到request延续的目的需要使用forward()这样才能将当前request的东西传递到下个页面的request中。
这样不就可以用session代替了么??
如果session代替了,那这个还有什么用
[/Quote]

首先,scope="request"相当于request.setAttribute("list", list);相当于把值放到request里面,在另一个页面里取出来进行显示。forward只是服务器端的跳转,是指同一个请求,不要和scope混起来,一般在前一个请求中带了一些参数,传到的页面可以接收这些参数。还有request不可以用session代替,它们存在必然有好处,一般我们只是一次访问页面的话,最好把要显示的东西放到request中,这样这次请求结束后,request里面的值就空了。而session的话,在这个会话之中都存在,你要是什么东西都往session里放的话,那么服务器端用来维护session的开销会非常大,而且如果浏览器不关,session里的东西永远存在,还得手动清除。所以一般情况下,如果不是用在多页面连续传递,要带前一个或再往前的数据过来的话,一般不用session作为scope的范围,所以,request不能被session代替。
limf1984 2008-11-03
  • 打赏
  • 举报
回复
呃,这个。。。
放request里面请求结束就会失去作用,放到session中去的话,貌似在整个会话过程中一直有效,如果什么都放进去,岂不是要往里面堆很多东西,

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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