【问题标题】:How to lock and Unlock a URL in java如何在java中锁定和解锁URL
【发布时间】:2012-10-19 11:34:16
【问题描述】:

我的网页中有一个超链接,单击它会导航到 jsp 页面。一旦我在那个 jsp 页面中,我应该能够锁定 jsp 页面,如果其他人访问同一个 jsp 页面,它应该显示警报或警告说它已经在使用中。当我从那个 jsp 页面出来时,如果其他人访问该 URL,它应该导航到该页面。知道如何在java中实现这一点吗?我正在使用弹簧框架 3.1。这是一个网络应用程序。我可以用javascript处理它吗?

【问题讨论】:

  • 你在用什么,你为那个.jsp页面写了一个servlet吗?
  • 你看到使用 websocket 或 comet approch 的机会了吗?
  • 奇怪的要求。您应该通过删除它而不是将其暴露给用户来解决该并发问题。

标签: java javascript spring


【解决方案1】:
  1. 您可以创建一个静态计数器。
  2. 您还可以在第一次请求时设置键/值对,然后您的代码决定根据键的值显示警报。

【讨论】:

  • 我们可以在导航出 jsp 后重置静态计数器吗?
  • 为此,您可以使用会话侦听器事件。因此,一旦您的浏览器或 JSP 页面关闭,系统就会发出 sessionDestroy 事件信号,并且您可以重置静态计数器。这是链接docs.oracle.com/cd/B15904_01/web.1012/b14017/filters.htm
【解决方案2】:

要完成这项工作,您需要做以下几件事: 1.创建静态锁,使用concurrnet.util库对象 2.当用户获取到jsp时,尝试加锁。如果没有成功 - 警报,如果成功 - 只显示页面 3.当持有锁的用户离开页面时,解锁,后续请求再次争夺锁。

最好,只是为了安全定义,从 JSP 创建的 servlet 实例只有一个。这是网络服务器上的配置。

【讨论】: