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