问题标签 [stateless]

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 投票
5 回答
2477 浏览

design-patterns - 策略模式应该是无状态的吗?

作为“四人组”策略的类必须完全无状态(即没有字段)还是可以包含不可变状态(即最终字段)?

0 投票
1 回答
31 浏览

http - twiki 中用于 HTTP 的 DBI_QUERY 替换

我目前正在替换 twiki 页面中的一些功能,该页面一直在使用 DBI_QUERY 功能从数据库中提取数据,并在其中一个表列上生成带有超链接的表。有没有办法从加载页面时 twiki 发出的 HTTP 请求中提取的逗号分隔文件生成类似的表?或者,我可以将数据提取为 JSON。

谢谢,

SetJmp

0 投票
3 回答
3221 浏览

asp.net-mvc - 什么是 Web 应用或网站中的无状态状态

我只是在学习 Web 应用程序开发的基础知识。当我阅读不同的方法时,如 ASP.Net Web Forms、ASP.Net MVC 等。大多数教程在解释 MVC 和所有内容时都提到了“无状态”一词。我无法正确理解该术语。你能帮忙解释一下吗。

谢谢

0 投票
1 回答
2316 浏览

php - 如何将 PHP 会话与 REST 客户端应用程序一起使用?

PHP 使用浏览器 cookie PHPSESSID 来存储会话值,比如说 12345,默认情况下它会为服务器上的每个会话创建一个文件 (session_12345.txt)。如果请求不是来自浏览器,例如通过 REST 协议访问的移动单元应用程序,该怎么办。如果我的休息客户端正在发送一个唯一值来识别它自己让说 12345 那么无论如何我可以告诉 PHP 使用这个值来创建 session_12345.txt 就好像这个值来自cookie PHPSESSID 一样?

提前致谢。

0 投票
1 回答
557 浏览

java - How can I send XMPP messages after a successful transaction?

In my project I have all services designed as stateless session beans. During the workflow, new data is created and this should be reported back to the clients. I only want to send this messages when the transaction is successfully committed.

I have a ServletContextListener registered which dispatches my xmpp packets (smack library). When I receive a packet, I locate my dispatching stateful session bean and start the processing of the request.

  1. How can I collect this generated messages during the workflow accross multiple beans? I would return this list from the dispatch bean and send the messages afterwards. My simple solution would be to route through a list where I add my messages, but is there a more elegant way?

  2. I have an XMPP resource (roster http://www.igniterealtime.org/builds/smack/docs/latest/javadoc/org/jivesoftware/smack/Roster.html) which I have to access from all beans. How can I accomplish that? Store it into a static variable and synchronize the access to it doesn't sound very good.

0 投票
1 回答
373 浏览

php - REST 身份验证无状态

我不认为“无状态”是一个词,但它会:)

我正在尝试为 REST 服务 (PHP) 创建身份验证。我正在尝试使服务尽可能无状态。我在这里读到(提示 #4)你不应该使用 $_SESSION ,这是有道理的,但它建议使用 cookie 作为替代方案。我可能误解了“无状态”是什么,但我看不出 cookie 是如何被接受的,我认为令牌是要走的路。

任何人都可以解释在无状态的休息应用程序中如何接受 cookie 而不是在会话中?

0 投票
3 回答
333 浏览

session - 如何避免在 Java webapp 中使用服务器端会话进行身份验证?

我想保护对 Web 应用程序中资源的访问,因此我使用标准机制对我的用户进行身份验证,并使用服务器端会话来保留经过身份验证的状态。

我想以负载平衡的配置跨多个系统进行部署,但我不想开始在我的基础架构中同步会话状态。是否有方法(使用 Java EE 中的规范驱动工具或 Spring Security 等常用库)在没有服务器端会话的情况下保留用户的身份验证状态,例如通过将所需状态推回客户端?如果是这样,我是否需要注意其他风险?


更新 - 我根据 Java EE webapp 规范使用声明式安全性并通过 LDAP 存储库进行身份验证。

0 投票
3 回答
6339 浏览

oop - 无状态面向对象编程与函数式编程?

如今,越来越多的注意力转向函数式编程的主要原因之一是多线程/处理的兴起以及 FP 专注于无副作用、无状态计算的优势,从而使可伸缩性变得轻松。

当然,尽管如此,在面向对象编程中,我们也可以转移到无状态范式,在这种范式中,所有对象都不会改变状态。这可以是一种约定,甚至可能是语言隐式支持的。例如,在强制对象字段和方法之间统一访问的语言中,简单地不允许 setter 方法就可以实现这一点。

那么,我的问题是,既然 OO 可以利用无状态性,并且对象没有任何要求有状态性,那么 OOP 是否实际上是 FP 的超集?FP 是否有任何其他优点/特性使多线程比 OOP 更实用?

0 投票
1 回答
423 浏览

java - 设计:Spring 中的无状态原型

我习惯于为服务、DAO 或控制器对象创建作为单例的 Spring bean。嗯,这对我来说似乎很自然。现在我的一位同事喜欢将所有此类对象制作为原型。

反对的理由是什么?还是专业的?

我唯一能说明的是每次引用 bean 时创建新实例的开销。虽然我觉得这种做法是非常错误的,肯定还有更多的原因。

0 投票
3 回答
3848 浏览

java - 是否有技术可以防止无状态 Web 应用程序中的重复提交?

我想在现有的 java web 应用程序(实际上是 struts)中实现双重提交预防。架构方面,我们谈论的是 2 到 N 个可能的应用程序服务器(tomcat)和一个单一的数据库服务器(mysql)。各个服务器彼此不认识,无法交换消息。在应用服务器前面有一个负载均衡器,它能够进行粘性会话

所以基本上有两种防止双重提交的客户端和服务器端。如果可能的话,我想去服务器端,因为如果人们在浏览器中禁用 cookie 和/或 javascript,所有客户端技术似乎都会失败。

这让我想到了通过数据库锁进行某种类似互斥的同步。我认为可以计算用户输入数据的校验和并将其保存到专用的数据库表中。在每次提交时,应用程序必须检查是否存在相等的校验和,这表明给定的提交是重复的。当然,必须定期清除此表中的校验和。问题是检查数据库中是否已经存在重复校验和并在没有校验和时插入校验和的整个过程几乎是一个关键部分。因此校验和表必须预先锁定并在该部分之后再次解锁。

当我想到桌锁时,我的僵局瓶颈警钟开始响起。所以我的问题是:有没有更明智的方法来防止无状态 Web 应用程序中的重复提交?

请注意,strutsTokenInterceptor不能在这里应用,因为当 cookie 被禁用时它会失败(它依赖于 HTTP 会话,如果没有会话 cookie,它根本不存在)。