OmniFaces ViewScoped bean 的内存影响?

2023-12-08

据我了解,ViewScoped bean 仅在发生以下情况之一时才会被销毁:

1) JSF 向另一个页面发送 POST 请求,其中包含类似<h:commandLink...>

2)打开的bean数量超过最大阈值设置(默认15)

3)用户的会话过期

这是我的困惑:

#1 是否意味着如果用户通过 GET 请求离开页面,bean 将保持打开状态,即使最终 JSF POST 发生在另一个页面的同一浏览器选项卡中?或者,一旦发送 JSF POST,无论用户位于哪个页面,该浏览器选项卡的所有活动 @ViewScoped 实例都会被销毁吗?

#2 是否意味着用户可以为每个 @ViewScoped 类拥有 15 个活动的 bean 实例?或者它是 15 个 bean 实例,无论类如何——这意味着我可以有 5 个 Class1 实例、5 个 Class2 实例和 5 个 Class3 实例,而新 bean 会破坏最旧的活动 bean?

对于 #3,如果 STATE_SAVING_METHOD 设置为“client”,这会对 ViewScoped beans 被销毁产生任何影响吗?据我所知,如果 STATE_SAVING_METHOD 设置为客户端,则需要有一种方法来手动控制会话过期。

最后,有没有一种方法可以管理活动的 ViewScoped beans,以便在用户单击“注销”时销毁它们?


我通过向每个 @ViewScoped bean 添加 @PreDestroy 方法并在其被销毁时进行记录来找到这些问题的答案。对于其他可能对此感到好奇的人:

对于 #1,如果您使用 GET 请求导航离开页面,但稍后发送 post 请求,则 Bean 不会被销毁。该 bean 将保留在内存中,直到达到“最大活动视图范围”设置并且轮到该 bean 被销毁,或者会话已失效。

对于#2,阶级并不重要。您可以有 5 个 Class1 实例、5 个 Class2 实例和 5 个 Class3 实例,并且新的 ViewScoped bean 实例将销毁最旧的 bean(假设您的阈值为 15)。

对于#3,一旦会话失效,即使 STATE_SAVING_METHOD 设置为客户端,bean 也会被销毁。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OmniFaces ViewScoped bean 的内存影响? 的相关文章

随机推荐

  • 哪个事件被触发? (javascript,输入字段历史记录)

    我有一个空的文本字段 但是当您单击它时 它会显示以前输入的一些建议 如果我用鼠标选择其中一个 JavaScript 事件 会触发哪个 JavaScript 事件 我正在使用 jquery 1 6 2 来绑定侦听器 view textRegi
  • 如何从 tfrecords 目录创建 tf.data.dataset?

    我的数据集有不同的目录 每个目录对应一个类 每个目录中有不同数量的 tfrecord 我的问题是如何从每个目录中采样 5 个图像 每个 tfrecord 文件对应一个图像 我的另一个问题是如何对其中 5 个目录进行采样 然后从每个目录中采样
  • MS Access - Docmd.OpenReport

    我正在尝试打开一个包含两个日期 dateFrom 和 dateTo 之间的日期字段的报告 该日期字段来自表单中的文本框 共享的尝试不会起作用 第一个 因为日期应该以特定方式格式化 YYYY MM DD 或 MM DD YYYY 并用 值 而
  • 如何理解vertical-align: -0.125em和vertical-align: middle的区别?

    我看到代码了vertical align 0 125em 并思考它和vertical align middle vertical align middle means 将元素的中间与基线加上父级 x 高度的一半对齐 所以你需要找到middl
  • Chrome 中的“Access-Control-Allow-Origin 不允许 Origin null”。为什么? [复制]

    这个问题在这里已经有答案了 我正在开发一些 Javascript 以在我的 PC 上本地运行 我正在使用 jQuery CSV 插件 http plugins jquery com project csv 将 csv 文件加载到 javas
  • 将函数名称存储在数据库中然后执行

    我正在制作一种 CMS 系统 该系统在网页的各个部分中工作 并将每个部分作为不同的条目存储到 MySQL 数据库的表中 当用户第一次设置页面时 PHP 脚本调用一个名为addsection name content 将该部分添加到数据库中
  • Delphi:等待bat脚本运行结束

    我有bat 文件 可以进行一些操作 如何从 Delphi 运行该文件并等待 直到它停止 像这样的东西 procedure TForm1 Button1Click Sender TObject begin Starting bat file
  • Git:如何重置远程 Git 存储库以删除所有提交?

    如何重置远程和本地 Git 存储库以删除所有提交 我想以当前的 Head 作为初始提交重新开始 完全重置 删除 git本地目录 重新创建 git 存储库 cd project directory git init add some file
  • 如何从数组中返回随机值?

    我正在使用 jQuery 验证插件 并希望在成功时返回一个随机值 现在我正在尝试使用 var success message new Array success message 0 Good success message 1 Ok suc
  • pygame 让球互相弹开

    我试图让球互相弹开 我尝试使用reflect 方法 但由于某种原因不起作用 为了检测球 我使用了groupcollide 既然我想不出更好的方法 也许这是错误的 import pygame import random class Ball
  • 为什么我的 Python 合并排序这么慢?

    我在理解这种行为时遇到了一些困难 我正在使用 timeit module 测量执行时间并得到以下结果10000 cycles Merge 1 22722930395 气泡 0 810706578175 选择 0 469924766812 这
  • 根据可变的用户定义路径从关闭的工作簿复制数据

    我已经用尽了我的搜索能力来寻找解决方案 以下是我想做的事情的概述 用户打开启用宏的 Excel 文件 立即提示用户输入或选择所需工作簿的文件路径 他们需要选择两个文件 并且文件名可能不一致 输入文件位置后 第一个文件选择的第一个工作表将被复
  • 将列表转换为“转置”列表

    这可能是一个初学者问题 但我不知道如何寻找答案 因为我无法 命名 问题 我有 2 个列表或 2 个列表的元组 xxx time1 time2 time3 yyy value1 value2 value3 zzz xxx yyy 现在我想为每
  • iOS 4.3 库的 xcode4 文档

    我安装了 xcode4 并在 Organizer 我可以看到的文档iOS 4 3 库 Mac OS X 10 6 库 and Xcode 4 0 开发者库 但是 当我离线时 我无法访问 iOS 库文档 我得到加载网址时出错您没有连接到互联网
  • 什么控制PhoneGap是否打开外部浏览器/Safari?

    有时PhoneGap在Safari中打开网页 有时在其UIWebView中打开网页 是什么控制的 From PhoneGap支持普通网络吗 https github com callback callback ios blob master
  • Cron 表达式:在 ASP.Net Core 中每天运行一次任务

    我的asp net core程序需要收集前一天访问网站的所有IP 当一天结束时 我需要将 IP 列表输出到 txt 文件 因此 程序应该每天运行一次保存 IP 列表的方法 我应该如何设计它 在我看来 我会在startup cs并设置Task
  • 以编程方式包含在项目中

    我们如何使用代码将文件包含在项目中 我想包含这个文件 我也想要这样的等价物 在代码中 可能吗 您可以通过几种方法来做到这一点 命令行 devenv 命令 File AddExistingSolutionItem完整路径 文件名 项目文件 项
  • 将 Excel 批量转换为文本分隔文件

    您好 我在处理将 Excel 电子表格转换为 txt 文件时遇到问题 我想要做的是创建一个宏 它可以将一个文件夹中的所有 xls 文件转换为 txt 文件 目前正在处理的代码 Sub Combined Application Display
  • 按子列表的值对 LIst 列表进行排序

    private List
  • OmniFaces ViewScoped bean 的内存影响?

    据我了解 ViewScoped bean 仅在发生以下情况之一时才会被销毁 1 JSF 向另一个页面发送 POST 请求 其中包含类似