request.setAttribute
和request.getSession().setAttribute()
之间的区别是什么?
它们存储在哪里以及采用哪种格式?
答案 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()
和你的登出页面中,你可以获得存储在会话中的警报值。