【问题标题】:request.setAttribute and request.getSession().setAttribute()request.setAttribute 和 request.getSession().setAttribute()
【发布时间】:2015-06-23 22:18:42
【问题描述】:

request.setAttribute 和 request.getSession().setAttribute() 有什么区别?
它们存储在哪里以及以何种格式存储?

【问题讨论】:

    标签: session servlets attributes request


    【解决方案1】:

    区别:

    当你使用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() 和您的注销页面中,您可以获得存储在会话中的警报值。

    【讨论】:

    • 谢谢 :) 但是它们将存储在哪里以及以哪种格式存储??
    • request.setAttribute() 方法是将属性存储为请求正文的一部分还是将它们存储在服务器中?
    • 它应该存储为请求对象的一部分。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-07
    • 2012-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-07
    相关资源
    最近更新 更多