如何在 JSF 中使用 cookie

2024-06-24

我有一个基于 JSF 1.2 会话范围 Bean 的 JSF 表单。 我有一个“重置”按钮,它会使会话无效。

我尝试使用 cookie 来记住会话之间的会话号(不是 JSF 会话,而是我的私人会话号),但失败了。 我的问题 - 初始化、检索和存储 cookie 的正确位置在哪里(某些侦听器?Bean 构造函数?)。

寻找最好的方法来做到这一点。

Thanks!


您可以通过以下方式获取所有cookieExternalContext#getRequestCookieMap() http://download.oracle.com/javaee/6/api/javax/faces/context/ExternalContext.html#getRequestCookieMap%28%29

Map<String, Object> cookies = externalContext.getRequestCookieMap();
// ...

当在 Servlet API 之上运行 JSF 时(99.9% 的情况都是如此;)),映射值解析为javax.servlet.http.Cookie http://download.oracle.com/javaee/6/api/javax/servlet/http/Cookie.html.

Cookie cookie = (Cookie) cookies.get(name);
// ...

在 JSF 1.2 中,缺少 JSF 2.0 引入的ExternalContext#addResponseCookie() http://download.oracle.com/javaee/6/api/javax/faces/context/ExternalContext.html#addResponseCookie%28java.lang.String,%20java.lang.String,%20java.util.Map%29方法,你需要投射ExternalContext#getResponse() http://download.oracle.com/javaee/6/api/javax/faces/context/ExternalContext.html#getResponse%28%29 to HttpServletResponse http://download.oracle.com/javaee/6/api/javax/servlet/http/HttpServletResponse.html(当然,仅当在 Servlet API 之上运行 JSF 时)然后使用HttpServletResponse#addCookie() http://download.oracle.com/javaee/6/api/javax/servlet/http/HttpServletResponse.html#addCookie%28javax.servlet.http.Cookie%29.

HttpServletResponse response = (HttpServletResponse) externalContext.getResponse();
Cookie cookie = new Cookie(name, value);
cookie.setMaxAge(maxAge); // Expire time. -1 = by end of current session, 0 = immediately expire it, otherwise just the lifetime in seconds.
response.addCookie(cookie);

您可以在 JSF 上下文中的任何位置执行此操作,正确的位置取决于唯一的功能需求。您只需确保在响应已提交时不添加 cookie,否则会导致IllegalStateException http://download.oracle.com/javase/6/docs/api/java/lang/IllegalStateException.html.

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

如何在 JSF 中使用 cookie 的相关文章

  • JavaBean 和 ManagedBean 有什么区别

    我在读JSF MVC 框架中的 MVC 是什么组件 https stackoverflow com questions 5104094 what components are mvc in jsf mvc framework 在总体架构图中
  • 使用 cookie 制作 Ruby Net::HTTP::Get 请求

    我想通过 ruby 打开我的 stackoverflow com 页面 我希望看到它就好像我已经过身份验证一样 I took usr来自 Google Chrome 的 cookie 并创建了以下代码片段 require net http
  • Next.js 身份验证策略

    我一直在尝试为 Next js 项目实现可靠的身份验证流程 但现在我完全迷失了 我已经看过 Next js 的示例存储库 但我对完整的解决方案有很多疑问 我有一个express js API 和一个单独的Next js 前端项目 所有数据和
  • DataTable - 延迟加载 Primefaces 显示错误

    我将 JSF2 0 与 PrimeFaces 3 1 和 Spring 3 1 一起用于业务逻辑 我试图使用 DataTable 延迟加载 但它给了我以下错误 请帮忙 发生错误 by zero Stack Trace java lang A
  • JSF 中“后退”导航链接的最佳实践

    制作 后退 链接的最佳方法是什么 以便应用程序在导航后保持一致 onclick history go 1 这是非常有害的吗 在支持 bean 中使用堆栈来弹出最后一个视图的导航情况 您可以通过设置导航案例来做到这一点
  • Django 会话:修改时更改会话密钥

    我正在设置一个支付网关 并使用会话跨页面请求存储数据 下面的类用于组织和存储会话信息 class Gateway def init self session key None session name FOO Store session I
  • CodeIgniter 3.1.2 中重定向后会话数据丢失

    我有一个 CodeIgniter 应用程序仍在开发中 但我意识到当我登录并在会话中设置用户数据时 它会被设置但在重定向后消失 因此 重定向后我无法访问会话数据 这是我的登录脚本 public function login if empty
  • 将 cookies.txt 文件与 Python 请求结合使用

    我正在尝试使用访问经过身份验证的网站cookies txt带有 Python 请求的文件 使用 Chrome 扩展生成 import requests cookielib cj cookielib MozillaCookieJar cook
  • 查找导致 Chrome SameSite 警告的 cookie

    正如你们中的一些人所知 Chrome 将于本月开始使用新的 SameSite cookie 政策 https web dev samesite cookies explained https web dev samesite cookies
  • 在 JSF 转换/验证机制之外的操作方法中创建 FacesMessage?

    我目前正在从 core jsf 2 0 book glassfish cdi 中学习 jsf 2 0 我想问一个关于处理 jsf 页面或带有 bean validation framework 的托管 命名 bean 中未定义的验证的问题
  • MyFaces + CDI 可以在 WebLogic 12c 上使用吗?

    我已经尝试让这个设置运行几天了 但仍然没有成功 这是我一直在使用的测试应用程序 Named RequestScoped public class Test private String test test public String get
  • 将操作方法​​名称作为参数传递给 Facelets 组件

    我正在调用模板并传递如下参数
  • 是否应该用于 JSF 2.2 CSRF 保护?

    我很困惑 我看到 JSF 2 0 有隐式 CSRF 保护 JSF 2 0 如何防止 CSRF https stackoverflow com questions 8704612 how jsf 2 0 prevents csrf 根据文章的
  • $_SESSION 中保存大量信息可以吗?

    我需要存储许多数组 SESSION以防止从 MySQL 检索信息 可以吗 其中 太多 的信息有多少 SESSION还是没有 太多 谢谢 附 或者更好地使用http php net manual en book memcache php ht
  • 从php表单获取cookie值

    对于用户可以在表单中输入的值 我该如何设置 cookie 值和名称 我该如何在第二页上显示该值 我不能不使用 cookie 所以虽然可能有更聪明的方法来做到这一点 但我只是想知道如何使用 cookie 来做到这一点 谢谢
  • 何时使用 f:viewAction / preRenderView 与 PostConstruct?

    什么时候应该使用f viewAction or preRenderView初始化页面数据的事件与使用 PostConstruct注解 是否根据支持 bean 的范围类型使用其中一种或另一种的基本原理 例如如果支持 bean 是 Reques
  • Web API 请求上的滑动会话

    UPDATE 看起来它正在尝试写入新的 cookie 标头ApplyResponseGrantAsync但不能因为它是抛出标头已发送的异常 UPDATE 更清楚 我如何获得Set Cookie在 Web API 请求期间添加到 XHR 响应
  • 如何清除客户端.Net SSL会话缓存

    我正在编写一个小测试工具 它使用 HttpWebRequest 来负载测试服务器 我想要 每次我尝试调用 HttpWebRequest GetResponse 时 它都会建立一个新的 SSL 会话 而不是使用缓存中的会话 注意 我提供客户端
  • 避免将“Google 地图”地图嵌入到网页中来存储 cookie

    我有一个带有地图的简单网站页面 来自谷歌地图 https www google it maps 嵌入到 iFrame 中
  • JSF 多个视图限制

    我创建了一个 Web 应用程序 可以在主页上的 iFrame 内打开页面 每个 iFrame 都可以通过页面上的选项卡查看 并使用 JSF2 2 和 Mojarra 视图状态 bean 来填充页面 当我打开 10 个选项卡以下的内容时 效果

随机推荐

  • Google Visualization 无法与 appscript html 服务配合使用

    我想将 appscript htmlservice 与 appscript 一起使用 html 服务似乎可以工作 但可视化不起作用 这是供参考的代码 代码 GS Script as app template function doGet r
  • readdir() 是否保证顺序?

    我正在使用 opendir readdir 获取类 linux 系统上的文件列表 看起来目录条目是按文件名的字母顺序返回的 但是 我在手册页中没有看到任何有关此顺序的保证 谁能告诉我 readdir 是否保证订单 The readdir方法
  • Ajax GET 请求:使用参数还是将数据放入 URL?

    在 Ajax GET 请求中将数据作为参数传递与作为 URL 的一部分传递相比有何优势 使用参数 var ajax new Ajax Request server php parameters store 11200 product Mea
  • SQL Server 2008-获取表约束

    你能帮我构建一个查询 检索所有表中的约束 每个表中的约束计数 并显示NULL对于没有任何约束的表 这是我到目前为止所拥有的 Select SysObjects Name As Constraint Name Tab Name as Tabl
  • 使用 arduino 客户端/python 服务器通过以太网转储数据

    我正在使用 arduino 以太网从传感器读取数据 然后想将数据发送到另一栋建筑物中的计算机以驱动 python 软件中的逻辑 控制 我决定在 python arduino 中绘制一个简单的草图 仅通过以太网将文本从 arduino 发送到
  • android studio 没有从 2.3 版本更新到 3.0 版本

    我正在尝试将我的 android studio 2 3 升级到 3 0 Linux 用户 我无意中按下了 忽略此更新 消息 然后我用谷歌搜索并找到了这个solution https stackoverflow com a 23636941
  • Firebase (FCM) 注册令牌

    我是 FCM 的新人 以下是有关注册令牌的一些问题 注册令牌是由 FCM 连接服务器生成的吗 Does the token change periodically in the connection server When 会不会强制onT
  • 如何在不知道谁呈现 UIActionSheets 和 UIPopoverControllers 的情况下关闭它们

    在我的客户端应用程序中 我有一个空闲超时控制机制 当用户在指定的时间间隔内没有对应用程序执行任何操作时 我会显示一条警告并将其返回登录屏幕 此控件发生在我的容器视图中 我在其中启动所有其他视图 当空闲时间结束时 我将此容器视图弹出给其调用者
  • Java SecurityException:签名者信息不匹配

    我像往常一样重新编译我的类 突然收到以下错误消息 为什么 我该如何修复它 java lang SecurityException class Chinese English Dictionary s signer information d
  • 如何在 Vega Lite 中将图例底部中间对齐?

    在 Vega Lite 中 我试图将我的图例与该图表的中间对齐 我需要类似的东西anchor图例的参数 但我只能找到titleAnchor 带图例的图表 https i stack imgur com ETiFs png legend ti
  • 绘制圆圈(使用 for 循环在图像中应用的像素)

    我想使用像素位置 从左上角开始到右下角结束 绘制一个圆 带有 1 或 2 个 for 循环 我用这个方法成功绘制了一个矩形 private void drawrect int width int height int x int y int
  • 聚合两个数组中的 $sum 值

    我有这个合集 id ObjectId 54f46f18c36dcc206d0cec38 project 23123 title Change of windows description Change to better windows o
  • 将数据从 DLL 传递到应用程序时出现问题

    我对如何在我的场景中正确使用指针感到有点困惑 我有一个 DLL 其中包含一些嵌入式资源 我在此 DLL 中公开了一个函数 该函数将这些资源之一的二进制数据传递回其调用应用程序 在本例中 我嵌入了 JPG 图像文件 我的 DLL 确实将文件正
  • C++ 运算符情况下的 const 转换

    考虑以下代码 struct A void operator const void operator const A int main const A ca ca g Error as expected ambiguous overload
  • 我可以在一行中从 DBNull 转换为 Nullable Bool 吗?

    我有一个数据库查询 它将返回NULL或布尔 位 值 我希望将此值存储在类型变量中Nullable
  • JSF 支持 bean 应该是可序列化的?

    我收到这些消息 2010 07 30T11 28 32 723 0000 警告 glassfish3 0 1 javax faces ThreadID 37 ThreadName Thread 1 设置 不可序列化的属性值 ViewMap
  • XSLT if - 属性等于字符串

    我正在使用一个xsl if在较大的条件下执行较小的条件xsl template块 我想测试当前属性的相等性xsl template匹配的节点 以下内容不起作用
  • 在 Ansible playbook 中指定多个默认组作为主机

    我正在寻找一种方法来指定多个默认组作为 Ansible 剧本中的主机 我一直在使用这个方法 name Do things on hosts hosts specific hosts default development tasks do
  • Rails 从哈希数组中选择最大值

    我有一个像这样的哈希数组 我想取其中的最大值 data name abc value 10 0 name def value 15 0 name ghi value 20 0 name jkl value 50 0 name mno val
  • 如何在 JSF 中使用 cookie

    我有一个基于 JSF 1 2 会话范围 Bean 的 JSF 表单 我有一个 重置 按钮 它会使会话无效 我尝试使用 cookie 来记住会话之间的会话号 不是 JSF 会话 而是我的私人会话号 但失败了 我的问题 初始化 检索和存储 co