我必须编写一个网络应用程序,让用户可以创建和修改文件。
这些文件将存储在服务器上。这个应用程序主要有两个页面:第一个页面列出了允许用户查看的文件。用户单击此列表中的一项:这让他转到第二页,他可以在其中编辑文件。
我的问题很简单:我想确保您在第一页(每个文件的列表)中看不到当前正在被其他用户修改的文件(在第二页中)。该应用程序在 Java EE 中使用 Struts 1(我没有决定)。
例如,我考虑过使用静态列表,它可以让我注册当前打开的每个文件;当用户单击并编辑文件时,我会将文件放入列表中。在理想情况下,当用户保存他的工作或返回列表时,我会从列表中删除该文件。然而:
- 这不是线程安全的
- 如果用户刚刚关闭浏览器怎么办?
您会采取什么方式来解决这个问题?
最佳答案
线程安全很容易添加到该场景中。更重要的问题是,一旦编辑文件的用户离开、关闭浏览器、烧毁他的房子或其他任何原因,文件就需要自动解锁。自动释放文件,再加上浏览器定期发送某种刷新命令可以解决这个问题。
关于java - 存储当前编辑的文件列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7358880/