问题标签 [httpsession]

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 投票
2 回答
3151 浏览

session - 在 grails 中,我如何获得对所有当前会话的引用?

我想在 grails 中列出管理控制器中的所有当前会话。从控制器获取对会话集合的引用的最简单方法是什么?

0 投票
4 回答
29172 浏览

java - 如何从 Java 类访问会话

我需要编写一个小型 Java 类,使我能够添加到当前用户会话并从中读取。

我看到的所有东西都指的是 Servlet,但我最好只使用一个普通的旧类。

谁能帮助这个Java新手?

谢谢

0 投票
1 回答
2207 浏览

.net - 强制在 .NET 中创建 HttpContext.Current.Session

我正在开发一个使用 .NET 的 StaticFileHandler 来提供动态生成的内容的应用程序......我们的应用程序还有另一部分使用当前的 HttpSession 来存储用户特定的数据。

由于 StaticFileHandler 旨在处理静态文件,因此它没有实现 IRequiresSessionState,因此通过该应用程序部分的任何内容都无法访问来自应用程序其余部分的特定于会话的数据。

StaticFileHandler 是 System.Web 内部的,因此我不能将它扩展为我自己的也实现 IRequiresSessionState 的类。当我检测到它为空时,是否有其他方法可以强制创建会话?

0 投票
3 回答
77021 浏览

java - 如何获取 Web 应用程序中所有 HttpSession 对象的列表?

假设我有一个正在运行的基于 Java 的 Web 应用程序,其中有 0 个或多个HttpSession与之关联的有效对象。我想要一种访问当前有效HttpSession对象列表的方法。我在想我可以实现一个HttpSessionListener并使用它来附加到存储在应用程序范围属性中的会话 id 值列表,但是当会话无效并且谁知道是什么时,我会更新列表别的。

在我开始编写自己的解决方案之前,我想我应该问一个问题:
servlet API 是否提供了一些方法来访问未失效会话对象的完整列表?

我使用 Tomcat 6.x 作为我的 Web 应用程序容器和 MyFaces 1.2.x (JSF) 库。

解决方案
我采用了类似于 BalusC 在这些现有问题中讨论的方法:

我按SessionData类修改来实现HttpSessionBindingListener. 当绑定事件发生时,对象将从所有SessionData对象的集合中添加或删除自己。

继续激怒我的一件事是 Tomcat 重新启动时会发生什么。除非 Tomcat 已正确配置为不将会话序列化到磁盘,否则它将这样做。当 Tomcat 再次启动时,HttpSession对象(SessionData以及与它们一起的对象)被反序列化,并且会话再次有效。但是,序列化/反序列化完全回避了HttpSession侦听器事件,因此我没有机会SessionData在重新启动后优雅地将反序列化引用放在我的托管对象集中。

我对客户组织中 Tomcat 的生产配置没有任何控制权,因此我不能假设它会按照我期望的方式完成。

我的解决方法是将HttpSession创建时间与收到请求时的应用程序启动时间进行比较。如果会话是在应用程序启动时间之前创建的,那么我会调用invalidate()并将用户发送到错误/警告页面,并解释所发生的事情。

我通过在侦听ServletContextListener器的方法中实现 a 并将当前时间存储在应用程序范围的对象中来获取应用程序启动时间。contextInitialized()

0 投票
2 回答
7705 浏览

java - JSF - 会话范围的托管 bean 没有在会话反序列化时重新注入依赖项

我不确定我在做什么是错的,或者我只是在某处错过了注释或配置项。情况如下:

我有一个带有会话范围 bean 的 JSF 应用程序,名为SessionData. ApplicationData这个 bean在创建时注入了一个应用程序范围的 bean 引用(类型为)。首次创建会话时,这可以正常工作。依赖注入是使用文件中<managed-bean>的元素完成的faces-config.xml,如下所示:

因为让我的对象在序列化时SessionData包含该对象是没有意义的,所以我在我的对象中将引用标记为瞬态: ApplicationDataApplicationDataSessionData

一切都很好,直到 Web 应用程序停止(在我的 Tomcat 6.x 容器中)并且会话被序列化。ApplicationData当我重新启动应用程序并反序列化会话时,JSF 不会重新注入我的引用。我知道反序列化应该使瞬态字段没有值。有没有办法向 JSF 发出信号,表明此会话范围的对象需要在反序列化后再次设置其依赖项?

我使用 MyFaces JSF 1.2 和 Tomcat 6.0.26 作为我的 Web 应用程序容器。

0 投票
1 回答
2365 浏览

jsp - Glassfish v3 + NetBeans + 简单身份验证模拟器:为什么会出现与序列化相关的异常?

问候,StackOverFlow 成员。我刚刚开始学习如何使用 Java Enterprise Beans 和 Java Persistence API 等技术编写支持 Web 的应用程序。

NetBeans 官方网站目前提供了一个捆绑包,(据说)允许我开发上述应用程序。一个大小约为 213 MB 的捆绑包。

现在是这样:假设我想模拟登录网站的过程。你知道,当我登录亚马逊时,我的会话数据存储在我的浏览器中,这就是他们能够显示诸如“欢迎,米格尔·马丁斯”或“米格尔·马丁斯的推荐购买”之类的内容的方式, 正确的?正确的。好吧,这就是我要做的(让我们从 index.jsp 开始):

很简单,对吧?我的意图是(显然)调用 setAuthenticatedUser 方法来存储会话数据,然后调用 getAuthenticatedUser 方法基本上询问“谁在这个 Web 浏览器中进行了身份验证?”

这就是我对其余部分的编程方式。请记住,这应该是一个简单/简约的应用程序,用于学习目的。

BeanFacade.java

用户Bean.java

UserBeanRemote.java(显然是UserBean的远程接口)

最后但同样重要的是,SimplifiedUser.java。这就是我想要存储为会话数据的内容。

然而,令我沮丧的是,当我运行该项目时,它向我抛出了一个异常:

HTTP 状态 500 -

类型异常报告

信息

描述服务器遇到一个内部错误 () 阻止它完成这个请求。

例外

org.apache.jasper.JasperException: javax.ejb.EJBException: java.rmi.MarshalException: CORBA BAD_PARAM 1330446342 也许;嵌套异常是:java.io.NotSerializableException:

根本原因

javax.ejb.EJBException:java.rmi.MarshalException:CORBA BAD_PARAM 1330446342 也许;嵌套异常是:java.io.NotSerializableException:

根本原因

java.rmi.MarshalException: CORBA BAD_PARAM 1330446342 也许;嵌套异常是:java.io.NotSerializableException:

根本原因

java.io.NotSerializableException:

根本原因

org.omg.CORBA.BAD_PARAM:vmcid:OMG 次要代码:6 完成:也许

note 异常的完整堆栈跟踪及其根本原因可在 GlassFish Server Open Source Edition 3.0.1 日志中找到。GlassFish Server 开源版 3.0.1

而且,经过一些老式的调试(“注释掉”),似乎异常的原因是这样的:

和这个:

这表明,不知何故,他们不希望我将我的用户数据(也不检索它)存储在 HttpSession 实例中。

有人知道为什么吗?首先将 Serializable 对象存储在 HttpSession 实例中不是完全合法的吗?如果是这样,那么这里到底发生了什么?

谢谢你,米格尔·马丁斯

0 投票
2 回答
2044 浏览

jsf - 如何防止在 JSF 应用程序中多次调用请求范围的 bean 方法?

好的,有了这个问题的所有答案,我仍然无法处理我的问题。我有以下星座:

在 JSF (1.1) webapp 中,我有一个请求范围的 beanbeanBean。当用户快速单击commandButton多次以将他重定向到insult.xhtml页面时,该doSomethingThatTakesALittleLongerAndShouldOnlyBeDoneOnce方法可能会被多次调用(在 Tomcat 6 上)。我怎样才能防止这种情况?

侮辱.xhtml:

0 投票
2 回答
955 浏览

java - 维护持久的http连接

我的 android 应用每 10 秒向一个 servlet 发送数据。servlet 接收到第一个请求并做出响应。但是 servlet 没有收到客户端在接下来的 10 秒后发送的第二组数据。有人可以请告诉我我该怎么做。它与会话有关吗?

0 投票
3 回答
307 浏览

java - Java Servlet 和 HttpSession

很基本的问题。我有一个包含多个 servlet 的门户,其中一个负责登录(但仅作为管理员)。如何在 Servlet 之间使用 HttpSessions 来了解管理员是否已登录?

提前致谢!

0 投票
3 回答
1934 浏览

java - 是什么阻止了 HttpSession 的 id 被盗?

在 Java Servlet API 中,如何确保某人的 session id 不被窃取?

例如,如果我有一个活动会话并且有人以某种方式获取了我的会话 ID,他们可以使用它吗?