问题标签 [persistent-storage]

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 投票
1 回答
1230 浏览

struts2 - Struts 2值堆栈“登录尝试”计数器不持久变量

我现在正在学习 Struts 2,并尝试创建一个登录尝试计数器,以在 x 次尝试失败后阻止任何进一步的登录尝试。

这是我的 login.jsp 的正文

还有我的 Action 类(我不包括带有 getter 和 setter 的私有 var,但它们都在那里)

在最初调用 login.jsp 的操作中,我传入一个初始值

这很好用。当我在 login.jsp 页面上点击提交时,问题就来了。

我得到以下堆栈跟踪

第 17 行是

每次我点击提交按钮时,loginAttempt它都会将变量重置为NULL.

谢谢

编辑:我知道这可能不是这样做的正确方法,我可能应该在会话中这样做。但是我试图理解为什么它不起作用。

0 投票
3 回答
1855 浏览

memory-management - PIC24F - 即使在 PIC 断电后,数据值也可能保持不变?

我有一个关于 PIC24F 中数据值的持久性(存储)的问题,即使 PIC 已关闭。

我已通读数据表,但对 EEPROM 和闪存的区别感到困惑。

例如,假设我有一个变量“x”,有没有办法让“x”的值在 PIC 关闭后仍然存在?我知道只要代码是在独立操作 (COE_OFF) 中编译的,程序就可以保留在闪存中。但是,我特别想知道数据值。

如果我将程序存储器和数据值的存储器设置为非易失性,即使断电也会保持不变吗?

我是否需要将值声明为“静态”,例如:static int x; ?

还是我错了,即使关闭电源,数据值也没有办法持续存在?

感谢您的帮助和澄清!

0 投票
2 回答
1571 浏览

c++ - 如何清理 WT 中的内存?

2013 年 3 月 27 日更新

看来我没有泄漏内存,只是每次按下 F5 或新用户连接时 WT 都没有保持持久会话。基本上,旧会话被删除,每次按 F5 或新用户从另一台机器连接时都会创建一个新会话。我已经阅读了文档的某些部分,其中提到了使会话持久化,因此当用户重新加载页面或不同的用户连接时,他们都会看到相同的内容。但是,我还不能让它工作。我认为这是 wt_config.xml 文件中的函数调用或设置。如果我取得任何其他进展,将更新。

原帖

所以我的问题是,我如何清理 WT 中的内存,以便每次用户在页面上按 F5 时内存使用在任务管理器中保持不变?

好的,所以我正在使用 WT 发音(诙谐),我注意到每次用户在页面上按 F5 刷新它时,我的服务器应用程序都会消耗更多内存,这对我来说看起来像是在泄漏内存,但我遵循与 WT 大多数基本应用程序相同的过程...

所以,我回到了我能找到的最基本的 WT 应用程序,hello 应用程序的代码和工作示例可以在这里找到(http://www.webtoolkit.eu/wt/examples/)如果你没有亲自建造过这个项目。

一旦我在我的机器上运行示例并在页面上按 F5,我的任务管理器中的内存就会增加。

我可能怀疑是下面的这个功能。

每次按下 F5 时都会调用它,并创建一个继承自 WApplication 的 HelloApplication 的新实例。

我试图纠正这种情况但没有奏效的一些事情包括: 为 HelloApplication 保留 2 个指针,以便每次分配新指针时都可以删除旧指针。调用 quit() 函数,并删除指针。只需调用 quit() 函数。我还在 WT 文档站点(http://www.webtoolkit.eu/wt/doc/reference/html/index.html)上查看了有关该类及其方法的更多详细信息,但还没有提出任何有效的东西。

我要求任何回复的人尽可能详细地说明如何处理内存清理。一个例子将不胜感激,在此先感谢!

0 投票
1 回答
1157 浏览

java - 索引> 使用 B 树

我即将用它们的 ID(现在是它们的行号)索引 1000 万个标题,标题将在标记它们后被存储。数据的结构必须类似于<String, Arraylist<Integer>>.字符串代表标记,整数代表行号。

我必须使用 Java、持久内存、尽可能不使用 RDBMS 来构建这个工具。由于这个数据结构是可变的,我找不到任何支持 MultiMaps 的工具,其结构 > 要使用 BTree 或任何其他持久数据结构进行索引。

我试过MapDB,但转而只接受不可变的,在我的情况下不适用(Arraylist)

任何想法表示赞赏。

0 投票
4 回答
2880 浏览

java - Java中的持久阻塞队列?

TL;博士; 我需要知道是否有一个具有持久阻塞队列的库。

我有一个经典的生产者/消费者计划。他们共享一个LinkedBlockingQueue来共享数据,而我BlockingQueue#take在 Consumers 中使用方法,因为我需要他们永远活着等待新的元素。

问题是我有很多数据而且我不能丢失它们。即使在消费者停止之后,生产者也可以坚持生成一些数据。我正在考虑H2在达到某个阈值后实现我的 BlockingQueue ta 用于存储/获取数据。我的主要问题是我需要性能,并且我需要按照元素的创建顺序来使用它们。

是否有一个持久阻塞队列的实现可以用于这样的事情?如果没有,我有什么建议可以实现这样的目标吗?

0 投票
1 回答
194 浏览

blackberry - 黑莓应用程序版本更新删除了某些设备上的持久存储对象

我有一个将对象存储在持久存储中的黑莓应用程序。更新应用程序后,它应该从持久存储中读取现有值(如果有),并继续使用该值。这适用于某些设备,但不适用于其他设备。我在几台运行 OS 版本 7 的设备上进行了测试,所有这些设备都按预期工作。但是,在使用版本 5 的设备和使用版本 6 的设备上,对象在持久存储中不再可读。

即使我没有更改除版本号以外的应用程序的任何内容,情况也是如此。从持久存储中保存和加载相同的类/对象,以及用于访问它的相同对象 ID。

我正在遵循的重现此过程的过程是:

  1. 使用命令行完全删除应用程序及其所有数据。
  2. 通过从浏览器下载 .jad 文件来加载应用程序的版本,验证它是否将数据存储在持久存储中。
  3. 当应用程序在后台运行时,通过浏览器下载 .jad 文件加载更高版本。
  4. 下载高版本后,系统询问我是否要更换之前的版本,我确认我要更换。
  5. 系统加载新版本,并提示我必须重新启动才能使更改生效。我选择“重启”。
  6. 设备重新启动。更高版本正在运行,但无法从持久存储中读取对象。

我可以持续重现此问题的设备是运行 6.0 Bundle 2647 的 Blackberry 9800 (Torch)。

如上所述,这只发生在某些设备上,而不是所有设备上,这让我认为这里可能会发生编码错误以外的其他事情。

任何人都有关于这个问题的想法或如何进一步调试它?

0 投票
1 回答
308 浏览

iphone - iOS 持久化一个自定义的 NSObject

我对自定义注释对象的持久存储感兴趣

CustomAnnotation : NSObject <MKAnnotation>

它具有以下属性

@property (nonatomic, assign) CGFloat val1;
@property (nonatomic, retain) NSString *val2;
@property (nonatomic, retain) NSDate *val3;
@property (nonatomic, retain) NSURL *val4;
@property (nonatomic, assign) double val5;
@property (nonatomic, assign) double val6;

存储数据的最佳方法是什么?我正在考虑使用 NSUserDefaults,但我需要将我的 CustomAnnotation 归档到 NSData 中吗?你是怎样做的?

谢谢!

0 投票
1 回答
4586 浏览

android - 如何存储 ArrayList> 在 SharedPreferences 中?

我希望在 SharedPreferences 中存储一个包含 Hashmap 的 ArrayList。我怎样才能做到这一点?

0 投票
1 回答
1203 浏览

macos - NSXMLStoreType 或 NSSqliteStoreType

我只是想知道在核心数据持久类型的 NSXMLStoreType 和 NSSqliteStoreType 之间进行选择时是否有任何优点和缺点,例如性能?

我四处搜索,发现 iOS 不支持 NSXMLStoreType。

0 投票
1 回答
197 浏览

blackberry - 持久存储 - 保存、读取和覆盖数据

我正在尝试PersistentStore在我的 BlackBerry 应用程序中保存 10 个字符串值。这个想法是在任何给定时间保存最新的 10 个项目(字符串值)。保存前 10 个值并键入第 11 个值时,它应该:

  • 删除第一个条目
  • 将剩余的 9 个条目移到订单上方
  • 将第 11 个条目保存为第 10 个值

这是我要遵循的逻辑。随着条目的不断增加,我将存储最多 10 个条目,这将是最新的 10 个值。我尝试通过以下方法保存String值:saveChatMsg()

其中 xx 是一个从 0 到 9 的整数。但是,虽然这是保存消息,但当我检索消息时,它不会按时间顺序显示。此方法在 4 个不同的地方调用,因此保存的 10 条消息的顺序不正确;最新消息可能会显示为第 6 个值而不是 10 等。请评论并建议如何实施。