日期:2014-05-17  浏览次数:20836 次

jsp中request.setAttribute不起作用吗?
在struts的formAction中request.setAttribute,转到jsp页中可以取到值,但是在jsp中request.setAttribute,在下一页中就取不到,应该怎么做才行呢?我想传的值是一个对象。

------解决方案--------------------
你是想在一个页面往另一个页面传值吗?

你在本页面request.setAttribute后,提交给action以后在action中request.getAttribute出来,然后在set进你要跳转的页面
------解决方案--------------------
request.setAttribute 都是只在一次用户请求中有效的。

如果你是forword到另外一个jsp就可以get得,如果是sendRedirect或者用户点击链接,那么是肯定无法得到的





如果你需要得到,那么应该用session.setAttribute


------解决方案--------------------
探讨
request.setAttribute 都是只在一次用户请求中有效的。

如果你是forword到另外一个jsp就可以get得,如果是sendRedirect或者用户点击链接,那么是肯定无法得到的


如果你需要得到,那么应该用session.setAttribute

------解决方案--------------------
如果你传的对象在多处都用到的话,你在action中set的时候就放进session可以用request.getSession().setAttribute 
不过session不用了记得remove,并设置过期时间!
不想用seesion的话就要在每次进入页面前在action里用request set好
------解决方案--------------------
一个页面往另一个页面传值
是不能用request.setAttribute的。
你传的是对象就只能通过ACTION。
要么用Session.setAttribute来进行,这个方法是不可取的。
------解决方案--------------------
session和request的用法要用得合理,如果你要存储这个对象想让多个页面都可以共享,用session。
如果只提交一次请求,就不要用session,用request就可以了,因为过度使用session会使网页变得更慢。

------解决方案--------------------
在服务器端转发,redirect
------解决方案--------------------
好像servlet中有个 forward
------解决方案--------------------
探讨
放到SESSION中是个解决的办法。

隐藏域是什么?

------解决方案--------------------
看透本质啊 ,了解REQUEST的传递过程,就是作用域

------解决方案--------------------
request.setAttribute之后可以在这次请求中一直使用,例如在这个JSP页面的其它地方使用,又或者在调用了forward到另外一个JSP时使用。
------解决方案--------------------
request.setAttribute是将数据保存在request对象中,当你使用转发后request仍然在作用域范围内所以可以获取request
中的数据,你可以用转发···或是用其他更大的作用域对象··如SESSION··等