【发布时间】:2012-09-15 15:24:17
【问题描述】:
是否可以从 Jquery 调用 Bean?我的要求如下,
我有一个基于 JSF 1.2 的 Servlet。
如果用户闲置了一段时间,他的会话就会失效。在会话无效前 1 分钟显示 Jquery 对话框。用户在对话框中有 2 个选项。 “是的,我想继续”将延长会话。 “不,我想注销”将注销用户。
当用户点击“不,我想注销”时,我想调用更新数据库并使会话无效的 bean 方法。
下面是代码,
'No, Log out': function(){
$j.idleTimeout.options.onTimeout.call($j.post('//This is where am stuck',function()
我想在 $j.post 中调用 bean,以便我可以在我的 bean 中进行一些清理活动。
如何做到这一点?
问候,
【问题讨论】:
-
如果最终用户在对话框显示 1 分钟后点击“是”怎么办?
-
@BalusC:当用户点击“是的,我想继续”时,正在调用一个 JSP 页面 (extend_session.jsp)。这个 JSP 页面里面没有任何内容。因此,当用户点击此 JSP 页面时(在会话失效触发之前),会话将被扩展。这样,用户可以继续浏览。如果用户不点击“是”,1分钟内会话失效,用户将被重定向到登录页面。
-
您说对话框在会话失效前 1 分钟显示。因此,如果对话框显示的时间超过 1 分钟(例如,因为最终用户外出吃午饭、上厕所或抽烟等),那么会话在服务器中已经失效(至少,您暗示)。
-
@BalusC :我的服务器中设置的会话超时为 15 分钟。对话框将在第 14 分钟显示,它会启动从 59 到 1 的计数器。如果用户没有单击“是”,当计数器值变为 0 时,表示已达到 15 分钟,会话将失效从服务器。我已经编写了被调用的监听器(HttpSessionListener)。在这里,正在处理清理代码(如调用 DB 等),最后再次重定向到登录页面。