问题标签 [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.
asp.net-mvc - 如何为 Session 编写扩展而不必为 HttpSessionState 和 HttpSessionStateBase 编写单独的方法?
我为 Session 编写了以下扩展方法,以便我可以按对象的类型持久化和检索对象。这对我的解决方案很有效,但我最终不得不复制我的扩展方法来覆盖旧的 HttpSessionState 和新的 HttpSessionStateBase。我想找到一种方法将这些恢复到涵盖两种类型的集合。有什么想法吗?
java - 如何从 JSESSIONID 加载 Java HttpSession?
我想HttpSession
通过 JSESSIONID 获取 Java。是否可以?如果是,如何?
jetty - AJAX (XmlHttpRequests) 会阻止我的 Jetty 管理的 HttpSession 过期吗?
我使用嵌入式 Jetty 实现作为我的 servlet 容器。这是一个小的配置片段:
各个页面上的一些项目将通过 AJAX 定期更新。这些请求会阻止 HttpSession 失效吗?
jsf - Xhtml页面和HttpSession测试,没有jstl?
我在 Java EE 中有一个带有 JSF、Facelets、Richfaces 的动态 Web 应用程序。我的页面都是 xhtml 页面。所以 JSTL 不能在其中工作。为了使我的帐户页面和所有其他私有页面都可以访问,我想测试用户是否已连接,因此会话中的属性HttpSession
是否不为空。如果它为空,则用户在欢迎页面中被重定向。
我在我的 xhtml 页面中尝试过:
但由于它不是 jsp 页面,所以它不起作用。那么我应该在哪里测试会话是否不为空以允许用户查看他的私人页面?在中央管理的 bean 中?
java - 每个请求都有一个新的 HttpSession?
JSESSIONID
在使用 servlet 规范开发应用程序时,我一直认为为给定客户端的每个新请求创建的 cookie 是理所当然的。但是经过一番思考,servlet 容器仅在会话被请求并在代码中创建之后才创建 cookie 标头不是更合乎逻辑吗?对于禁用 cookie 的客户,它最终不会HttpSession
为每个请求创建一个新的吗?
如果问题仍然不清楚,请告诉我,以便我进行编辑。TIA。
java - 实现生成HttpSession key
我正在尝试实现生成 HttpSession 密钥
我正在生成一个介于 1,000,000 到 9,999,999 之间的随机数,并将其作为 cookie 发送给用户。
是否有可能使这个过程安全?任何人都可以制作一个这样的随机数并尝试访问我的服务器......也许我需要更大的范围?
另一个问题是,如何生成我以前没有生成的数字?现在我每次使用该号码时都会重新生成,是否有可能以更好的方式做到这一点?
java - Java HttpSession setattribute 在 qa 上抛出不可序列化的异常,但在本地环境中不会
我保存到会话的对象是 a LocalizationContext
,它是不可序列化的,我的 Tomcat 是 5.5.28,而 qa 服务器是 Tomcat 5.5.30。这是来自Tomcat 文档:
每当 Catalina 正常关闭并重新启动时,或者当触发应用程序重新加载时,标准管理器实现将尝试将所有当前活动的会话序列化到通过路径名属性定位的磁盘文件。当应用程序重新加载完成时,所有这些保存的会话将被反序列化并激活(假设它们同时没有过期)。
为了成功恢复会话属性的状态,所有此类属性必须实现 java.io.Serializable 接口。
<distributable>
您可以通过在您的 Web 应用程序部署描述符 (/WEB-INF/web.xml) 中包含该元素来使 Manager 强制执行此限制 。
这让我认为它也应该在我的本地中断,并且你永远不能在 Tomcat 中保存会话属性,除非它实现Serializable
.
编辑:
对不起,更清楚地说,我的问题有两个。是否所有会话属性都必须是可序列化的,如果可以,为什么它仍然可以在我的本地环境中工作?
gwt - HttpSession 在调用 Servlet 和 GWT RPC Servlet (RemoteServiceServlet) 之间发生变化
我有一个 GWT 应用程序,我想在 Joomla 布局中运行它。这个概念似乎工作正常,应用程序正确加载。Joomla 使用 iFrame 来实现这一点,只需发送将启动 GWT 应用程序的 url。
我遇到的问题是我需要来自 Joomla 的某些信息,我将这些信息作为 url 中的参数传递。由于 GWT 应用程序是从 HTML 页面启动的,因此我无法访问这些参数,因此我向 Servlet 发出请求,其想法是我可以获取这些参数,将其保存在会话中,然后提供GWT 应用程序 HTML 页面。
这个概念很好用。我获取参数,将它们放入一个映射中,该映射进入一个基本 bean,然后我将 bean 存储为带有代码的会话属性:
然后 Servlet 提供 GWT HTML 页面,该页面反过来加载应用程序,它做的第一件事就是触发 RPC 调用。我遇到的问题是在我的 RemoteServiceServlet 处理该调用时,我尝试使用以下代码获取我的 SessionBean:
我得到空值,仔细观察发现它实际上已经创建了一个新会话。我通过比较两个会话的 id 知道这一点。任何后续的 RPC 调用都可以访问最后一个会话,但我存储 SessionBean 的那个已经消失了!
它是一个已部署的 war 文件,启用了 cookie,并且在开发和生产模式下都以这种方式运行。
我想我可能误解了会话的处理方式!关于 GWT RPC 调用为何创建新会话的任何想法?或者,如果我完全错了,如何将这些需要的参数放入会话中?
任何帮助或想法将不胜感激!
提前致谢!
尚德尔
session - 如何让 Tomcat 中的 HttpSessions 保持活跃?
我在 Tomcat 服务的 Web 应用程序中遇到了会话超时问题。通过阅读 Tomcat 的文档,会话在可以在 web.xml 文件中配置的时间后过期。
问题)这是否意味着从为用户创建会话起 30 分钟?还是从上次访问会话开始的 30 分钟?
如果它是,正如我最初认为的那样,距离上次访问会话 30 分钟,我似乎没有看到这种行为。当我使用该网站时,我的会话似乎丢失了。除了这个设置之外,还有其他方法可以配置会话行为吗?有什么我想念的吗?
Apache Tomcat/6.0.20
java - 创建会话时如何获取 IP 地址?
在我的grails应用程序中,我实现了HttpSessionListener
监听会话创建的接口,如下所示:
现在,我想记录负责创建会话的 IP 地址。
我怎样才能做到这一点?