request.setAttribute和request.getSession()。setAttribute()

时间:2015-04-17 07:25:05

标签: session servlets attributes request

request.setAttributerequest.getSession().setAttribute()之间的区别是什么? 它们存储在哪里以及采用哪种格式?

1 个答案:

答案 0 :(得分:6)

差异:

当您使用request.setAttribute时,您会存储同一请求对象的内容。 稍后当您从当前的servlet / jsp转发到某个其他servlet / jsp 时,可以使用此属性。

使用request.getSession().setAttribute()时,您可以为特定用户会话存储内容。 如果用户会话尚未过期,您可以随时使用此属性

它们存放在哪里以及格式:

servlet容器将管理存储值的位置。值始终存储为String

示例:

假设有一个用于输入学生标记的html页面,它被发送到某个servlet X并且你想在servlet Y中使用这些值。所以你在servlet X请求属性中设置标记值然后转发到servlet Y并使用这些变量。

但是,假设您有多个ui页面,当用户注销时,您希望用他的名字提醒他。所以你可以做的是,要将他的名字存储在request.getSession().setAttribute()和你的登出页面中,你可以获得存储在会话中的警报值。