问题标签 [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 回答
1767 浏览

unit-testing - 在对 GWT 应用程序进行单元测试时,如何模拟容器提供的对象(例如 HttpSession)?

我目前正在尝试在 GWT 应用程序中对我的服务层(所有 *Impl.java 类)进行单元测试。问题是在代码中,我有一个依赖于 Httpsession 提供的对象的依赖项。实际上,我在 httpSession 中存储了一个用户对象(当前登录的用户)。

为了从 HttpSession 中取回它(在 *Impl.java 类中),我使用这个:

用户用户 = ServiceUtil.getUser(getThreadLocalRequest().getSession());

如何从我的单元测试代码中模拟这个对象?

多谢,

0 投票
4 回答
29738 浏览

java - 如何使用 servlet/jsp 显示数据库中的数据

我正在尝试显示我的 jsp 中的汽车列表。但我不明白为什么运行时什么都没有出现:

小服务程序代码:

JSP代码:

我是不是错过了什么。我不明白。当我运行 servlet 时,它应该在 jsp 页面中显示车辆列表。

我正在使用休眠(工作正常并且可以完美地访问数据库)并使用 MVC 模型。

这是我的表格:

0 投票
1 回答
1434 浏览

java - 优雅地检查 HTTPSession 引用是否仍然有效

我将所有已建立的 HTTPSession 对象存储在哈希图中。无论如何在排队消息之前确定 HTTPSession 是否仍然有效?

示例:如果我正在遍历哈希映射,我只想将有效的 HTTPSession 对象的消息排入队列。

更新

如果有人感兴趣,我需要使用 gwt-comet 来实现这个逻辑。解决方案(正如 Tomasz Nurkiewicz 指出的那样)可以在本页底部找到

0 投票
1 回答
1086 浏览

gwt - 如何使用 Guice 在 GWT 的服务层 (DAO) 类中 @Inject HttpSession 对象?

我的 GWT 应用程序中有这么脏的代码,我的服务层的一些类依赖于HttpSession对象。例如,在我的一个 DAO(它是一个 GWT-RPC 端点)中,我有这样的东西:

问题是,我目前正在迁移代码以使用 RequestFactory。我的 DAO 将不再是 GWT-RPC 端点。所以不需要扩展 RemoteServiceServlet ......

你知道我如何获取/注入(可能使用Guice)我对 HttpSession 对象的依赖,知道我的类不再扩展 RemoteServiceServlet 吗?

0 投票
1 回答
381 浏览

java - 确保 GAE/J 中的每个用户请求处理序列化

google appengine 的默认模式是每个实例都以单线程模式运行。如果需要,它们会通过生成新的 JVM 实例来处理并发请求。

一个新的开关允许 appengine 在同一个实例上并行处理多个请求。

到目前为止,为了确保同一用户的请求之间的线程安全,我在定期托管的 Java Web 应用程序中所做的是在 http 会话(或存储在会话中的值)上同步。Spring 也这样做(使用synchronizeOnSession标志)。

这在 GAE 中是不可能的,因为 HttpSession(连同它存储的所有变量)在每个 http 请求中总是新的。也就是说,哈希码总是不同的。因此,同步对此没有任何影响。但即使这是可能的,appengine 也不保证来自同一用户的两个请求将由同一实例处理(类似于粘性会话)。

appengine 的新标志警告说:

如果您希望使用并发请求,您的应用程序代码需要在启用 .

那么,如何确保我的应用程序对于来自同一用户的操作是线程安全的?我最关心的是用户可以对他的 http 会话中存在的数据执行的操作。我显然只关心在同一实例中同步同一用户的请求。

谢谢

0 投票
0 回答
5185 浏览

spring - Spring安全并发会话和HttpSessionListener问题

我已经实现了 HttpSessionListener 并且它工作正常,除了登录用户第二次同时登录的情况。Spring 正确终止了第一个会话,但从未触发 destroySession 事件,至少我的侦听器从未得到它。

我的弹簧安全如下:

上面将用户从第一个会话中注销,如果他们同时登录第二次,则永远不会调用 HttpSessionListener.sessionDestroyed。

通常会调用 HttpSessionListener.sessionDestroyed 以进行手动注销和会话超时。

我在 web.xml 中有一个监听器的“委托代理”:com.test.security.DelegatingHttpSessionEventListenerProxy

此侦听器委托给 my-servlet.xml 中定义的 spring-bean:

委托侦听器编码为:

我正在使用 spring-security-3.0.5,有人可以告诉我我错过了什么吗?谢谢你。

0 投票
1 回答
1612 浏览

c++ - 如何使用 Poco C++ HTTPSessionFactory

设置 HTTPSessionFactory 以同时处理 HTTP 和 HTTPS 的最佳、最简单的方法是什么?我知道我需要使用 HTTPSessionInstantiators,但我真的可以使用一个简短而甜蜜的例子。谢谢。

0 投票
1 回答
4018 浏览

multithreading - Spring Security:多个 ThreadLocals 中的相同 SecurityContext-instance,它是如何工作的?

我有一些关于 Spring Security 3.0.5 和 SecurityContext 的问题。首先,我试着总结一下我所知道的:

  • SecurityContextHolder 存储 SecurityContext
  • Request之间,SecurityContext存储在HttpSession中
  • 请求开始:SecurityContextHolder 从 HttpSession 获取 SecurityContext
  • 请求结束:SecurityContextHolder 将 SecurityContext 放入 HttpSession

  • 在请求期间,在服务器上,SecurityContextHolder 使用 ThreadLocal。在应用程序的任何地方(相同的请求),都可以访问 SecurityContext

现在我的问题....

--> 两个请求:SecurityContext-instance 将被共享

这是如何运作的?我的意思是,SecurityContextHolder 对每个请求都使用 ThreadLocal。2 请求 = 2 ThreadLocals

每个请求都会: 从 HttpSession 中获取会话属性 (SecurityContext) 如果它们在 SecurityContext 上工作会发生什么?所有 ThreadLocals 中的 SecurityContext 是否都发生了变化?

据我所知:是的(??)

这是如何运作的?它们如何在同一个实例上工作?我的意思是,我真的无法想象具有两个不同 ThreadLocals 的两个不同线程如何在同一个实例上工作?

API (ThreadLocal):此类提供线程局部变量。这些变量不同于它们的正常对应变量,因为每个访问一个(通过它的 get 或 set 方法)的线程都有它自己的、独立初始化的变量副本。

我的意思是,就是这样:复制!也许我错了,两个线程不可能在同一个SecurityContext上工作?但是 Spring Security 文档是这么说的!

如果有人能向我解释一下就好了:-)谢谢!

0 投票
3 回答
6481 浏览

grails - Grails 中的 httpSession

我需要访问当前会话的域类用户。以下代码有效:

但是,我需要访问当前会话的用户,而不是显式获取 ID 等于 1 (User.get(1)) 的用户。我尝试了以下代码,但它不起作用:

我仍在努力完全理解 httpSession 概念,所以一点帮助会很棒。预先感谢。

更新

在我的 UserController 中,我的身份验证如下所示:

0 投票
2 回答
2222 浏览

java - HttpSession 通过引用或值存储属性?

我在我的服务器应用程序中使用 HttpSession。并为会话设置属性。接下来我的问题:会话的属性如何设置 - 通过引用或值。

出于害怕原因的问题,即不会 java 堆空间异常和 RAM 节省。

例如:如果我将创建无状态array1并将其设置为不同会话的属性。在这种情况下,所有会话都将array1作为“单例”实例使用,或者可能不使用

谢谢!