request.setAttribute和request.getSession().setAttribute()有什么区别?
它们存放在哪里,以哪种格式存储?
发布于 2015-04-17 07:35:25
差异:
使用request.setAttribute时,可以为同一个请求对象存储一些内容。稍后,当您从当前的servlet/jsp转发到其他servlet/jsp时,您可以使用这个属性。
使用request.getSession().setAttribute()时,可以为特定的用户会话存储一些内容。如果用户会话尚未过期,则可以随时使用此属性。
它们存储在哪里,以哪种格式存储:
servlet容器将管理存储值的位置。并且这些值总是以String的形式存储。
一个例子:
假设有一个用于输入学生标记的html页面,该页面被发送到某个servlet X,您希望在servlet Y中使用这些值。因此,您在servlet请求属性中设置标记值,然后转发到servlet Y并使用这些变量。
但是,假设您有多个ui页面,并且当用户注销时,您希望用他的名字提醒他。所以,您可以做的是,将他的名字存储在request.getSession().setAttribute()和您的注销页面中,您可以获得存储在会话中的警报值。
https://stackoverflow.com/questions/29692846
复制相似问题