问题标签 [session-scope]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
89321 浏览

session - 如何在 JSF 2.0 中使会话无效?

在 JSF 2.0 应用程序中使会话无效的最佳方法是什么?我知道 JSF 本身不处理会话。到目前为止我能找到

  1. 这种方法正确吗?有没有办法不接触 ServletAPI?
  2. 考虑一个@SessionScopedUserBean 处理用户登录-注销的场景。我在同一个bean中有这个方法。reset()现在,当我在完成必要的数据库更新后调用该方法时,我当前的会话范围 bean 会发生什么?因为即使是 bean 本身也存储在HttpSession?
0 投票
1 回答
7726 浏览

java - 如何在 Guice 中使用 @SessionScoped


,我目前正在玩 Guice 和 @SessionScoped。为了更有意义,我决定构建一个(非常简单的)身份验证过程。

下面,我将解释我所做的每个步骤。然后我会问你一些问题。

[1] 我创建了一个代表一个人(客人或用户)的身份类:

[2] 接下来,我创建了一个登录用户的身份验证类:

[3] 然后,在我的 Servlet 中,我登录用户:

[4] 最后,我创建了一个过滤器,显示用户是否已通过身份验证:

好吧,这段代码不起作用。我的身份的 uid 始终为“null”。

让我们来提问:

a - 首先,为什么我的代码不起作用?
b - @SessionScoped 是否等同于在 HttpSession 中设置对象?
c - 如何在(http)会话中使身份对象(仅它)无效?
d - 一般来说,在什么情况下我们必须使用@SessionScoped?

感谢您的阅读,
等待您的答复。

0 投票
1 回答
3251 浏览

jsf - 为什么我们要让 JSF 中的 SessionScoped ManagedBean 线程安全?

我知道 Application-Scope 跨多个用户持续存在,所以很明显我们应该确保所有 ApplicationScoped ManagedBeans 都是线程安全的。

我也明白我们不需要关心 RequestScoped ManagedBean 的线程安全。那是因为它只持续一个 HTTP 请求,并且如果它被引用,就会为每个请求重新实例化。

但我不太清楚为什么我们应该担心 SessionScoped ManangedBean 的线程安全。即使它在多个请求中持续存在,每个单独的用户都会获得他/她自己的实例,对吗?

那么,为什么我们需要担心 SessionScoped ManagedBeand 的线程安全,这是否也适用于 ViewScoped ManagedBean?ViewScope 在同一视图的 2 个连续请求中持续存在,对吗?

0 投票
1 回答
4822 浏览

jsf - 在会话范围的 JSF bean 中请求范围属性

我想要一个会话范围的 JSF bean,它具有一个请求(页面)范围的属性。有可能吗?

0 投票
1 回答
762 浏览

session - CDI SessionScoped Bean 生成大量会话

我正在登录。问题是:我的 isUserLoggedIn() 方法被其他会话多次调用(我已经使用检查过 (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false))。

Login bean(一个 JSF 页面)是这样的:

所以,发生的事情是:当 login() 被调用时,我可以通过 getSession() 看到它是 X,但是随后在尝试访问另一个页面时,当调用 isUserLoggedIn() 时,getSession() 方法返回 Y X,用户属性为空。isUserLoggedIn() 方法经常被调用多次,只有 1 个请求,每次调用它的会话都会改变。

顺便说一句,我使用的是 JBoss AS7 Final,我的 faces-config.xml 如下:

有任何想法吗?谢谢你。

0 投票
1 回答
409 浏览

jsf - 如何将会话范围内的初始化 bean 传递给另一个会话范围?

我有一个登录页面,我检查用户是否存在于我的数据库中,如果存在,user 则初始化 bean,然后我重定向到myprofile.xhtml页面,但在那里(在myprofile.xhtml)我想用另一个ManageBean. 只是为了不弄乱每个视图的责任和ManageBean.

更新 遵循 BalusC 方法:

我只想捕获已初始化的对象 mUser(模型)。

0 投票
0 回答
813 浏览

jsf - 使用不同用户登录时,CDI SessionScoped Bean 实例保持不变

我一直在寻找这个问题的解决方法相当长的时间但没有结果,所以我在这里提出问题。

简单来说,我User在我的项目中使用了一个 CDI SessionScoped Bean 来管理用户信息并将它们显示在 jsf 页面上。容器管理j_security_check也用于解决身份验证问题。

session.invalidate()如果先用不同的用户注销然后在同一个浏览器选项卡中登录,一切都很好。但是当我尝试login.jsf使用新用户直接登录(通过)而不事先注销时,我发现用户信息保持不变。

我调试并发现Userbean 以及HttpSession实例,如果在同一个浏览器中使用不同的用户登录,只要session.invalidate()不被调用,它总是保持不变。但奇怪的是,会话 ID 确实被修改了,而且我都检查了 Java 代码和 Firebug。

上面的块包含两个连续的登录及其Session信息。我们可以看到实例(第 1 行)相同,而会话 id(第 2 行)不同。似乎会话对象被重用以包含不同的会话ID,并且CDI框架仅根据会话对象管理会话bean生命周期(?)。

我想知道除非无效,否则同一浏览器中是否只有一个服务器端会话对象?

由于我正在采用j_security_check我喜欢拦截它并使旧会话无效并不是那么容易。那么是否有可能在不改变 CDI+JSF+j_security_check 设计的情况下实现这一目标,即可以在同一浏览器中的相同或不同选项卡中使用不同帐户重新登录?

真的很期待您的回复。

更多信息:Glassfish v3.1 是我的应用服务器。

0 投票
1 回答
2644 浏览

jsf - JSF 2:可以在会话开始时初始化会话范围的 bean?

在 JSF 2 中是否可以在加载会话上下文后立即初始化会话范围的托管 bean?我知道 Application Scoped bean 和注释eager中的属性是可能的@ManagedBean,但是会话 bean 是否存在类似的东西?我有一个会话范围的 bean,无论是否访问特定页面,我都想加载它。

0 投票
1 回答
2860 浏览

java - Ajax Long Polling in Java, Spring MVC - session scope issue

I am trying to implement a long polling mechanism for auto-updating a grid in a project that uses Spring MVC.

I am sending an Ajax request from the client and on the server side I enter a while loop until data is found then the data is send back as a response.

I need to have another mechanism that stops this operation (that breaks off the loop) when the user changes tab in the application (every tab has a different grid that is auto-updating through long polling. Every tab is handled server-side by a different controller).

What I thought is that I need to have a session scoped variable or bean that changes when the client changes tab and which is accessible from inside the loop so it can break on change. When I tried to use Spring MVC beans scope I noticed that the bean's property that I common in two different sessions (that is HttpSession). I tested this by loging in with a different user from the same machine.

I tried using the but I had the same result.

Any ideas on how to make this work?

Thank you in advance.

0 投票
2 回答
2990 浏览

nhibernate - 如何从 Castle ActiveRecord SessionScope 检索当前 NHibernate Session 对象

我有一个开放的 Castle ActiveRecord SessionScope。我需要使用封装到 SessionScope 中的休眠会话。

如何从 SessionScope 检索当前的 NHibernate 会话对象?

非常感谢您的回复。

[更新] 我有这个代码

但我不知道传递给 GetSession 参数的是什么