7

session.setAttribute和有什么区别request.setAttribute

4

3 回答 3

11

范围,会话属性存在于所有会话中,请求属性仅在一个请求中

于 2013-06-06T20:22:15.453 回答
3

区别在于范围。请求范围属性仅在处理当前请求时可见。会话属性在来自同一用户的多个请求之间是持久的。会话支持机制可能不同(最普遍的是基于 cookie),但它们都保证会话属性持久性,直到用户的会话保持不变。

于 2013-06-06T20:23:32.623 回答
1

请求属性仅在request对象生命周期内可用。 filters, servlet, jsp, include, forward使用相同的请求对象。一旦请求完成,请求对象就会被销毁。

而会话属性在会话结束或浏览器关闭之前都可用。因此,区别在于范围。

例如,像page1->page2->page3->page4这样的流程。session.setAttribute将使密钥在所有页面中可用。但是如果我们request.setAttribute在page2中使用,那么只有page3才能得到page2中设置的key值。

request.setAttribute()可以帮助您摆脱隐藏的字段。

于 2016-08-29T05:33:55.990 回答