【发布时间】:2015-06-23 22:18:42
【问题描述】:
request.setAttribute 和 request.getSession().setAttribute() 有什么区别?
它们存储在哪里以及以何种格式存储?
【问题讨论】:
标签: session servlets attributes request
request.setAttribute 和 request.getSession().setAttribute() 有什么区别?
它们存储在哪里以及以何种格式存储?
【问题讨论】:
标签: session servlets attributes request
区别:
当你使用request.setAttribute 时,你为同一个request 对象存储了一些东西。 稍后当您从当前的 servlet/jsp 转发到其他一些 servlet/jsp 时,您可以使用此属性。
当您使用request.getSession().setAttribute() 时,您为该特定用户会话存储了一些内容。 如果用户会话未过期,您可以随时使用此属性。
它们存储在哪里以及采用何种格式:
servlet 容器将管理存储值的位置。并且值始终存储为String。
一个例子:
假设有一个用于输入学生分数的 html 页面,该页面被发送到某个 servlet X,并且您想在 servlet Y 中使用这些值。因此,您在 servlet X 请求属性中设置标记值,然后转发给 servlet Y 并使用这些变量。
但是,假设您有多个 ui 页面,并且当用户注销时,您想用他的名字提醒他。因此,您可以做的是,将他的名字存储在request.getSession().setAttribute() 和您的注销页面中,您可以获得存储在会话中的警报值。
【讨论】: