问题标签 [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.
unit-testing - 在对 GWT 应用程序进行单元测试时,如何模拟容器提供的对象(例如 HttpSession)?
我目前正在尝试在 GWT 应用程序中对我的服务层(所有 *Impl.java 类)进行单元测试。问题是在代码中,我有一个依赖于 Httpsession 提供的对象的依赖项。实际上,我在 httpSession 中存储了一个用户对象(当前登录的用户)。
为了从 HttpSession 中取回它(在 *Impl.java 类中),我使用这个:
用户用户 = ServiceUtil.getUser(getThreadLocalRequest().getSession());
如何从我的单元测试代码中模拟这个对象?
多谢,
java - 如何使用 servlet/jsp 显示数据库中的数据
我正在尝试显示我的 jsp 中的汽车列表。但我不明白为什么运行时什么都没有出现:
小服务程序代码:
JSP代码:
我是不是错过了什么。我不明白。当我运行 servlet 时,它应该在 jsp 页面中显示车辆列表。
我正在使用休眠(工作正常并且可以完美地访问数据库)并使用 MVC 模型。
这是我的表格:
java - 优雅地检查 HTTPSession 引用是否仍然有效
我将所有已建立的 HTTPSession 对象存储在哈希图中。无论如何在排队消息之前确定 HTTPSession 是否仍然有效?
示例:如果我正在遍历哈希映射,我只想将有效的 HTTPSession 对象的消息排入队列。
更新
如果有人感兴趣,我需要使用 gwt-comet 来实现这个逻辑。解决方案(正如 Tomasz Nurkiewicz 指出的那样)可以在本页底部找到。
gwt - 如何使用 Guice 在 GWT 的服务层 (DAO) 类中 @Inject HttpSession 对象?
我的 GWT 应用程序中有这么脏的代码,我的服务层的一些类依赖于HttpSession对象。例如,在我的一个 DAO(它是一个 GWT-RPC 端点)中,我有这样的东西:
问题是,我目前正在迁移代码以使用 RequestFactory。我的 DAO 将不再是 GWT-RPC 端点。所以不需要扩展 RemoteServiceServlet ......
你知道我如何获取/注入(可能使用Guice)我对 HttpSession 对象的依赖,知道我的类不再扩展 RemoteServiceServlet 吗?
java - 确保 GAE/J 中的每个用户请求处理序列化
google appengine 的默认模式是每个实例都以单线程模式运行。如果需要,它们会通过生成新的 JVM 实例来处理并发请求。
一个新的开关允许 appengine 在同一个实例上并行处理多个请求。
到目前为止,为了确保同一用户的请求之间的线程安全,我在定期托管的 Java Web 应用程序中所做的是在 http 会话(或存储在会话中的值)上同步。Spring 也这样做(使用synchronizeOnSession
标志)。
这在 GAE 中是不可能的,因为 HttpSession(连同它存储的所有变量)在每个 http 请求中总是新的。也就是说,哈希码总是不同的。因此,同步对此没有任何影响。但即使这是可能的,appengine 也不保证来自同一用户的两个请求将由同一实例处理(类似于粘性会话)。
appengine 的新标志警告说:
如果您希望使用并发请求,您的应用程序代码需要在启用 .
那么,如何确保我的应用程序对于来自同一用户的操作是线程安全的?我最关心的是用户可以对他的 http 会话中存在的数据执行的操作。我显然只关心在同一实例中同步同一用户的请求。
谢谢
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,有人可以告诉我我错过了什么吗?谢谢你。
c++ - 如何使用 Poco C++ HTTPSessionFactory
设置 HTTPSessionFactory 以同时处理 HTTP 和 HTTPS 的最佳、最简单的方法是什么?我知道我需要使用 HTTPSessionInstantiators,但我真的可以使用一个简短而甜蜜的例子。谢谢。
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 文档是这么说的!
如果有人能向我解释一下就好了:-)谢谢!
grails - Grails 中的 httpSession
我需要访问当前会话的域类用户。以下代码有效:
但是,我需要访问当前会话的用户,而不是显式获取 ID 等于 1 (User.get(1)) 的用户。我尝试了以下代码,但它不起作用:
我仍在努力完全理解 httpSession 概念,所以一点帮助会很棒。预先感谢。
更新
在我的 UserController 中,我的身份验证如下所示:
java - HttpSession 通过引用或值存储属性?
我在我的服务器应用程序中使用 HttpSession。并为会话设置属性。接下来我的问题:会话的属性如何设置 - 通过引用或值。
出于害怕原因的问题,即不会 java 堆空间异常和 RAM 节省。
例如:如果我将创建无状态array1
并将其设置为不同会话的属性。在这种情况下,所有会话都将array1
作为“单例”实例使用,或者可能不使用
谢谢!