使用会话和会话持久性 Weblogic session

本文档详细介绍了如何在WebLogic Server中设置和管理HTTP会话,包括会话概述、会话管理配置、会话持久性、URL重写以及Servlet会话跟踪。重点讨论了会话超时、Cookie配置、数据库持久性存储和基于URL重写的技术,以适应不同场景下的会话跟踪需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

开发 WebLogic Server 的 Web 应用程序、Servlet 和 JSP

     上一页   下一页     在新窗口中打开目录      

在此处开始内容

使用会话和会话持久性

以下部分描述如何设置和使用会话以及会话持久性:

 


HTTP 会话概述

通过会话跟踪,您可以跟踪用户在多个自身无状态的 servlet 或 HTML 页面上的进度。会话被定义为特定时间段内来自同一个客户端的一系列相关的浏览器请求。会话跟踪将一系列浏览器请求联结起来(可以将这些请求当作页面来考虑),这些请求整体上可能具有一定的含义,例如购物车应用程序。

 


设置会话管理

默认情况下,WebLogic Server 设置为可以处理会话跟踪。无需设置以下任何属性即可使用会话跟踪。但是,配置 WebLogic Server 管理会话的方式是调整应用程序以获得最佳性能的关键部分。设置会话管理时,您需确定如下因素:

  • 预期访问 servlet 的用户的数量
  • 每个会话的持续时间
  • 每个用户的预期数据存储量
  • 向 WebLogic Server 实例分配的堆大小

您还可以永久存储来自 HTTP 会话的数据。请参阅配置会话持久性

HTTP 会话属性

通过在 WebLogic 特定的部署描述符 weblogic.xml 中定义各种属性,您可以配置 WebLogic Server 会话跟踪。有关会话特性的完整列表,请参阅 session-descriptor

在以前的 WebLogic Server 版本中,引入了对 SessionID 格式的一个更改,以致某些负载平衡器丧失了保持会话粘滞性的能力。服务器启动标志 -Dweblogic.servlet.useExtendedSessionFormat=true 保留了负载均衡应用程序保持会话粘滞性所需要的信息。如果激活了 URL 重写功能,且启动标志设置为真,则扩展会话 ID 格式将属于 URL 的一部分。

会话超时

您可以指定 HTTP 会话过期的时间间隔。会话过期时,将放弃会话中存储的所有数据。可以在 web.xml 或 weblogic.xml 中设置时间间隔:

  • 在 WebLogic 特定的部署描述符 weblogic.xml 中的 session-descriptor 元素中设置 timeout-secs 参数值。该值以秒为单位进行设置。有关详细信息,请参阅 session-descriptor
  • 在 J2EE 标准 Web 应用程序部署描述符 web.xml 中设置 session-timeout 元素。

配置 WebLogic Server 会话 Cookie

客户端浏览器支持 cookie 时,WebLogic Server 使用 cookie 进行会话管理。

默认情况下,WebLogic Server 用于跟踪会话的 cookie 设置为暂态,其生存期不会超过会话期间。用户退出浏览器时,cookie 丢失,会话结束。此行为主要用于会话,建议您以此方式使用会话。

您可以在 WebLogic 特定部署描述符 weblogic.xml 中配置 cookie 的 session-tracking 参数。会话及 cookie 相关参数的完整列表位于 session-descriptor 中。

配置生存期超过会话期间的应用程序 Cookie

要获得生存期更长的客户端用户数据,您可以编写自己的应用程序,通过 HTTP servlet API 在浏览器上创建和设置自己的 cookie。应用程序不应试图使用与 HTTP 会话关联的 cookie。您的应用程序可能会使用 cookie 以使用户从特定计算机自动登录,这样,您需要设置新的 cookie 以持续更长时间。请记住,只能从此特定客户端计算机发送 cookie。如果用户必须从多个位置进行访问,您的应用程序应该在服务器上存储数据。

您不能直接将浏览器 cookie 的期限与会话时间长度关联起来。否则,如果 cookie 在其关联会话之前过期,则会话会变得孤立。而如果会话在其关联 cookie 之前过期,则 servlet 无法找到该会话。这种情况下,当调用 request.getSession(true) 方法时,将自动分配一个新会话。

可以使用 weblogic.xml 部署描述符的会话描述符中的 cookie-max-age-secs 元素设置 cookie 的最大生命周期。请参阅 cookie-max-age-secs

退出和结束会话

用户身份验证信息既存储于用户会话数据中,也存储于 Web 应用程序所定位的服务器或虚拟主机的上下文中。通常用于使用户退出的 session.invalidate() 方法仅使用户的当前会话失效,用户身份验证信息仍有效,且存储于服务器或虚拟主机的上下文中。而如果服务器或虚拟主机仅承载一个 Web 应用程序,则 session.invalidate() 方法实际上会使用户退出。

针对多个 Web 应用程序使用身份验证时,有多种 Java 方法和策略可以使用。有关详细信息,请参阅退出和结束会话

使 Web 应用程序共享同一个会话

默认情况下,Web 应用程序不共享同一个会话。如果您希望 Web 应用程序共享同一个会话,您可以在 weblogic-application.xml 部署描述符中配置应用程序级别上的会话描述符。要使 Web 应用程序共享同一个会话,请将 weblogic-application.xml 部署描述符中会话描述符中的 sharing-enabled 特性设置为 true 。请参阅 session-descriptor 中的“sharing-enabled”。

应用程序级别上指定的会话描述符配置将替代在 Web 应用程序级别上为应用程序中所有 Web 应用程序指定的任何会话部署描述符配置。如果您在 Web 应用程序级别上将 sharing-enabled 特性设置为真,则将忽略该设置。

如果您在 weblogic-application.xml 部署描述符中指定会话描述符,并将

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值