session.setAttribute和request.setAttribute之间有什么区别?

时间:2013-06-06 20:19:51

标签: java servlets

session.setAttributerequest.setAttribute之间有什么区别?

3 个答案:

答案 0 :(得分:9)

范围, session属性仅在请求

中生成所有会话和请求属性

答案 1 :(得分:2)

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

答案 2 :(得分:1)

请求属性仅在request对象生存期内可用。 filters, servlet, jsp, include, forward使用相同的请求对象。 请求完成后,请求对象将被销毁。

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

例如,像 page1-> page2-> page3-> page4 这样的流程。 session.setAttribute会在所有页面中提供密钥。但是如果我们在第2页中使用request.setAttribute,那么只有page3可以获得第2页中设置的键值。

request.setAttribute()可以帮助你摆脱隐藏的领域。