在J2EE环境中是否存在用于在每个页面上实现单个用户模型的模式?
每页一个用户我的意思是,如果我访问:
mysite.com/foo/pageA
如果其他人试图访问此页面,他们应该无法直到我:
-navigate away from the page
-close the browser
现在,我已经使用一个map来实现这个功能,该map是处理foo/*
请求的servlet中的成员变量。地图的键是页面名称(枚举),地图的值是一个布尔值,表示该特定页面是否被锁定。
在提供页面之前,我查看地图值以确定页面是否被占用,如果不是,我将用户发送到页面并更新地图条目(在地图上同步),如果它是的,我将用户发送到显示页面被占用的消息的页面。
为了实现锁定,我使用onbeforeunload javascript方法,我在其中使用ajax post调用将map条目更新为false,再次在地图上进行同步。
我知道如果应用程序扩展到多个实例,则必须保持锁定/解锁,但就目前而言,该应用程序仅为大约10个用户提供服务。
它似乎正在工作,但我想知道是否有已建立的模式来实现这一点,或者如果将页面锁定为仅允许单个用户的想法在Web应用程序中是不好的做法。