【问题标题】:corresponding jsp `session` variable in servlet?servlet中对应的jsp`session`变量?
【发布时间】:2014-01-09 14:59:18
【问题描述】:

在 JSP 中,我们有 session 变量。 servlet中对应的变量是什么?

尝试了request.getSession(),但它是请求会话。我想要全局会话

【问题讨论】:

  • 什么是“全局会话”?应用上下文?
  • 您对 JB 的回复暗示其他情况。根据定义,会话是针对每个客户端的。

标签: jsp session servlets session-variables


【解决方案1】:

JSP 中的session 隐式变量与request.getSession() 相同。没有所谓的“全球”会话。每个请求都带有一个 cookie,用于标识它“属于”的会话。这就是为什么你需要一个请求来获取会话。

【讨论】:

    【解决方案2】:

    您必须了解不同的范围。 “范围”是存储 bean 的地方。这个地方控制 bean 的可见位置和可见时间。

    共有三种选择:

    1. 请求范围 • 存储在请求中的数据对servlet 和servlet 转发到的页面是可见的。其他用户或其他页面上看不到数据。最常见的范围。

    2. 会话范围 • 存储在请求中的数据对servlet 和servlet 转发到的页面是可见的。如果是同一用户,则可以在其他页面或稍后看到数据。其他用户看不到数据。比较常见。

    3. 应用范围(Servlet 上下文) • 存储在servlet 上下文中的数据对应用程序中的所有用户和所有页面都是可见的。很少使用。

    JSP 会话,servlet 中的 'sessionScope' 对象是这样使用的:

    HttpSession session = request.getSession();
    session.setAttribute("key", value);
    

    请求范围使用:

    request.setAttribute("key", value);
    

    应用程序(Servlet 上下文)范围使用:

    getServletContext().setAttribute("key", value);
    

    [来源:关于 servlet 和 JSP 以及更多内容:http://www.coreservlets.com/]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-11
      • 2015-02-15
      • 1970-01-01
      • 2013-03-22
      • 1970-01-01
      • 2013-06-10
      • 2011-04-06
      • 1970-01-01
      相关资源
      最近更新 更多