如何在 JSF 托管 bean 中创建、访问和销毁会话?

2024-02-16

目前,我正在为在线购物车创建一个 Web 应用程序,我需要在每个 jsf 页面上维护会话。

我的问题是:

  1. 如何在托管 bean 中创建和销毁会话

  2. 如何访问存储在会话变量中的值?像这样?

    FacesContext.getCurrentInstance().getExternalContext().getSessionMap.put("key",object);
    
  3. 如何销毁jsf中的会话

我还需要使用销毁会话session.invalidate()但我失败了!


如何在托管 bean 中创建和销毁会话

您不需要自己创建它。 servlet 容器将根据需要自动为您执行此操作。换句话说,每当您(或 JSF)需要在会话范围内设置一个对象时,servlet 容器就会自动创建会话。在 JSF Web 应用程序中,当您

  • 参考一@SessionScoped or @ViewScoped第一次管理bean。
  • 通过以下方式获取会话ExternalContext#getSession(), 通过true首次。
  • 将对象存储在会话映射中ExternalContext#getSessionMap()首次。
  • 返回带有以下内容的页面<h:form>第一次,状态保存方法设置为“服务器”。

您可以通过以下方式销毁会话ExternalContext#invalidateSession(). E.g.

public String logout() {
    FacesContext.getCurrentInstance().getExternalContext().invalidateSession();
    return "login?faces-redirect=true";
}

请记住随后发送重定向,因为会话对象在当前请求的响应中仍然可用,但在下一个请求中不再可用。


如何访问存储在会话变量中的值?

只需将其设为 a 的属性即可@SessionScoped托管 bean。或者,您也可以手动操作ExternalContext#getSessionMap(), yes.


如何销毁jsf中的会话

这在第一个问题中已经得到了回答。

也可以看看:

  • Servlet 如何工作?实例化、会话、共享变量和多线程 https://stackoverflow.com/questions/3106452/how-do-servlets-work-instantiation-session-variables-and-multithreading/3106909#3106909
  • 在 jsf 中启动会话的基本步骤 https://stackoverflow.com/questions/6020994/basic-steps-for-starting-session-in-jsf
  • 如何选择合适的bean范围? https://stackoverflow.com/questions/7031885/how-to-choose-the-right-bean-scope/7031941#7031941
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 JSF 托管 bean 中创建、访问和销毁会话? 的相关文章

随机推荐

  • 通过 TCP 传输程序集

    我目前正在尝试通过 TCP 连接发送序列化对象 如下所示 BinaryFormatter formatter new BinaryFormatter formatter Serialize clientStream Object Assem
  • 如何反汇编正在运行的linux内核?

    寻找一种反汇编正在运行的内核的方法 我可以通过 dev kmem 来实现吗 我运行的是linux 2 6 32 或者我可以使用内核模块来运行内核吗 我是初学者 请帮忙 我想做的就是通过查看是否出现某些特定指令来检查内核映像中是否存在某些恶意
  • MediaStyle 通知:播放/暂停按钮不响应单击

    在我的应用程序中 当用户选择要播放的音频文件时 当文件准备好并且播放开始时 会成功显示 MediaStyle 通知 元数据信息已更新 标题 图标等 但是 1 Play Pause button does not respond to cli
  • 在 PyCharm 中调试 asyncio 代码会导致绝对疯狂的不可重复错误

    在我的基于使用 PyCharm 调试器进行调试的 asyncio 和 asyncio tcp 连接的项目中 我遇到了非常非常荒谬的错误 如果我在运行后在代码上放置断点 则断点永远不会触发 但是如果在启动程序之前设置了断点 则会触发断点 但在
  • Select2 下拉更改事件不起作用

    我在用Select2下拉菜单 我需要根据下拉菜单选择执行一些功能 我尝试过以下代码 但它对我不起作用 eventSelect on select2 select function e log select2 select e eventSe
  • 结构体中的指针和值有什么区别?

    给定以下结构 type Exp struct foo int bar int 在结构中使用指针或值时 性能有何区别 是否有任何开销或者这只是 Go 编程的两个流派 我会使用指针来实现链式结构 但这是否是我们必须在结构中使用指针以获得性能的唯
  • jQuery - SlideToggle() 和切换文本

    我有一个可以使用隐藏的联系表 slideToggle 但我希望该选项卡用于Toggle根据表单是否更改文本的表单in view or hidden 这是 jQuery slider click function form wrap anim
  • 如何将 SQLSRV 扩展安装到 php XAMPP

    I m trying to install a SQLSRV extension My PHP version is 7 2 XAMPP 3 2 2 and I use windows 10 I downloaded the dll fro
  • myisam_sort_buffer_size 与 sort_buffer_size

    我的服务器是 MySQL 内存为 6GB 我需要知道 myisam sort buffer size 和 sort buffer size 之间有什么区别 我为它们设置了以下尺寸 myisam sort buffer size 8M 排序缓
  • 错误:找不到Python模块tensorflow.python.keras

    我想将一些数值转换为类别 我正在使用 keras 包进行图像分类 当我使用 to categorical trainy 时 收到 错误 未找到 Python 模块tensorflow python keras 我已经采取了 trainy l
  • Firebase - 对多个节点进行更新/扇出时设置优先级

    我正在一次更新中写入 Firebase 数据库的多个部分 节点 这样做时是否可以设置节点的优先级 例子 firebaseRef update some node value some other node other value 如果我想同
  • 使用 Gluon 移动环境时如何在运行时请求权限?

    我是新来的 因此我还不知道该网站的所有规则 对此感到抱歉 我正在使用 Eclipse 工具中的 Gluon 移动插件构建桌面和 Android 的 Java 应用程序 我有针对桌面和 Android 的不同代码 如示例中所述 http do
  • PyCharm 使用 Mypy 吗?

    PyCharm 使用 Mypy 还是 JetBrains 实现PEP 484 https www python org dev peps pep 0484 分别地 看来他们采用了自己的实现方式 https github com python
  • Django - 重写 Model.create() 方法?

    The Django 文档 http docs djangoproject com en dev topics db models overriding predefined model methods仅列出覆盖的示例save and de
  • 在 RHEL 6.5 上安装 RPostgreSQL libpq-fe.h 错误

    我有 RHEL 6 5 服务器 安装了 R 3 1 1 和 RStudioServer 0 98 1062 我安装了 postgresql 9 3 并处理一个大型数据库 为了将 R 连接到 PostgreSQL 我过去使用过 RPostgr
  • 通过 python/JS 发送 Whatsapp 消息

    我编写了一个程序 它从 excel 获取信息并通过 python 发送消息 我使用 selenium 和 span 来查找我需要的元素 现在 WhatsApp 更改了 HTML 不再有跨度 旧代码在这里 import time import
  • HTML 中
    标签的使用:版权还是网站管理员?

    在我客户网站的页脚上有他的地址和版权声明 下面是网站管理员的地址 对于两者 我将使用 hCard 微格式 我应该使用其中的哪一个
  • 将 netCDF 文件转换为 csv

    我正在努力将几个 Berkeley Earth netCDF 文件转换为 CSV 或其他表格格式 我意识到以前曾提出过类似的问题 但我无法应用我遇到的任何解决方案 例如 这个数据集 http berkeleyearth lbl gov au
  • 将图像绕一个圆圈

    在这个例子中我想做的是将图像包裹在一个圆圈上 如下所示 为了包装图像 我简单地使用 trig 计算了 x y 坐标 问题是计算出的 X 和 Y 位置被四舍五入以使其成为整数 这会导致上面的包裹图像中出现空白像素 x y 位置必须是整数 因为
  • 如何在 JSF 托管 bean 中创建、访问和销毁会话?

    目前 我正在为在线购物车创建一个 Web 应用程序 我需要在每个 jsf 页面上维护会话 我的问题是 如何在托管 bean 中创建和销毁会话 如何访问存储在会话变量中的值 像这样 FacesContext getCurrentInstanc