刚开始接触EJB,在后台action中,看别人写的代码,如下:
request.setAttribute("templateName",strTemplateName);
request.getSession().setAttribute("sessionTemplateName",strTemplateName);
我现在不明白什么情况下把一些属性放入request,什么情况下放入session,
请各位不吝赐教,谢谢!
好像和EJB没什么关系:)
session用于存放跨请求的变量,如用户A登录后,系统要记录他的登录信息,在用户访问网站的整个过程中,一直需要记录着,就应该放到session中。
而request则是一次请求,比如用户请求查看某个产品的信息,产品信息只需要在这次请求中显示出来,用户访问其他页面时,不需要知道这个产品的信息,那就应该放在request中。
[quote]request.setAttribute("templateName",strTemplateName);
request.getSession().setAttribute("sessionTemplateName",strTemplateName); [/quote]
不知道是否和jsp 一致!
放进去的基本上去为了保存他的值!在其他地方用!比如下一个页面!。。
如果要整个用户的 session 都能用到这个值 就放session
session
一般用于存储常用信息比如用户登录信息等。作用域一次会话。
request
只用于存储一些查询信息。用于在界面上显示。只会在forward下有效。
属性放到那个范围 ,根据需求定 但是你必须明白 reqyest session的生命周期
比如:你有一个鸡蛋要放!
现在你有一个碗(request)和一大口缸(session),你会放到哪里?
肯定是碗里,request只能支持一次转发跳转传递,就像接力赛一样,一棒给二棒,二棒给三棒。。。中间都要在request存一次,取一次。
放在session中的值可以随用随取,只要session不失效!
弄清楚request,和session 的生命周期,就知道那些改放到哪里去了。原则是session只存放必须的数据,而不是为了省事都放到session里面去。