Java会话超时弹出

我使用JSF 2.0和我有当过会话超时正在发生的事情,然后我想显示超时警告弹出窗口,并从弹出如果我从超时警告窗口中点击然后会话单击确定按钮的要求要继续其他明智它应该重定向到会话超时页面,你可以请帮我在这如何建立这种类型的要求。

谢谢,玛尼

--------------解决方案-------------

我得到了在Java脚本解决方案,我创建的所有jQuery函数公共

var defaults = {
inactivity: 600000, //10 Minutes
noconfirm: 300000, //5 minutes
sessionAlive: 900000, //15 Minutes
redirect_url: 'TimeOut.xhtml',
click_reset: true,
alive_url: '',
logout_url: 'TimeOut.xhtml'
}

var opts = $.extend(defaults);
var liveTimeout, confTimeout, sessionTimeout;

$(function(){
start_liveTimeout = function()
{
clearTimeout(liveTimeout);
clearTimeout(confTimeout);
liveTimeout = setTimeout(logout, opts.inactivity);

if(opts.sessionAlive)
{
clearTimeout(sessionTimeout);
sessionTimeout = setTimeout(keep_session, opts.sessionAlive);
}
};
});

$(function(){
logout = function() {
confTimeout = setTimeout(redirect, opts.noconfirm);
showAlert();
};
});

$(function(){
redirect = function() {
if(opts.logout_url)
{
$.get(opts.logout_url);
}
window.location.href = opts.redirect_url;
};
});

$(function(){
stay_logged_in = function(el) {
start_liveTimeout();
if(opts.alive_url)
{
$.get(opts.alive_url);
}
};
});

$(function(){
keep_session = function() {
$.get(opts.alive_url);
clearTimeout(sessionTimeout);
sessionTimeout = setTimeout(keep_session, opts.sessionAlive);
} ;

});

(function($){
$.fn.idleTimeout = function(options) {

return this.each(function() {
obj = $(this);
start_liveTimeout();
if(opts.click_reset)
{
$(document).bind('click', start_liveTimeout);
}
if(opts.sessionAlive)
{
keep_session();
}
});

};
})(jQuery);

$(document).ready(function(){
$(document).idleTimeout();
$("input[id$=btnOK]").click(function () {
$.modal.close();
stay_logged_in();
});
});

function showAlert() {
idleSessionAlert = $('#basic-modal-content').modal({
opacity : 50,
overlayCss: {backgroundColor:"#000"},
escClose : false,
modal:true,
onOpen: function (dialog) {
dialog.overlay.slideDown('slow', function () {
dialog.data.hide();
dialog.container.fadeIn('slow', function () {
dialog.data.fadeIn('slow');
});
});
},
onClose: function (dialog) {
dialog.data.fadeOut('slow', function () {
dialog.container.hide('slow', function () {
dialog.overlay.slideUp('slow', function () {
$.modal.close();
});
});
});
}

});
}

在CSS

#basic-modal-content {
display: none;
}
#simplemodal-container {
display:none;
height:300px;
width:530px;
color:#000000;
background-color:#ffffff;
border:1px solid #ffffff;
border-radius: 10px;
padding:12px;
}
#simplemodal-container p {
color:#000000;
display:block;
font-size: 1em;
font-style: verdana normal;
padding: 10px 10px 5px 10px;
margin: 0px;
float: left;
width: 510px;
}
.modalGroupHeader {
line-height: 1.25;
font-style: arial normal;
font-size: 1em;
font-weight: bold;
position: relative;
display: block;
color: #000000;
padding-top: 0.615em;
padding-bottom: 0.615em;
padding-left: 10px;
float: left;
}
.modalSectionHeader {
line-height: 48px;
font-style: arial normal;
font-size: 1.308em;
font-weight: normal;
display: block;
color: #007dba;
float: left;
width: 530px;
padding-bottom: 10px;
}
.modalSectionHeader_left {
height: 48px;
width: 15px;
background-image: url(../images/sectionHeader/sectionHeader_left.gif);
float: left;
position: relative;
}
.modalSectionHeader_right {
right: 0;
height: 48px;
width: 15px;
background-image: url(../images/sectionHeader/sectionHeader_right.gif);
float: right;
position: relative;
}
.modalSectionHeader_body {
line-height: 48px;
height: 48px;
width: 500px;
background-image: url(../images/sectionHeader/sectionHeader_tile.gif);
background-repeat: repeat-x;
float: left;
position: relative;
}
.modalButtonPanel {
width: 530px;
float: left;
bottom: 10px;
position:absolute;
}

在我的XHTML我打电话按钮JSF Ajax请求,因此会延长我的会议

<div id="basic-modal-content">
<p>Click OK to continue your session</p>
<h:commandButton id="btnOK" styleClass="btnOK">
<f:ajax event="click" listener="#{HandlerBean.extendSession()}" immediate="true" ></f:ajax>
</h:commandButton>
</div>

只有从理论:Primefaces组件库有部分p:idleMonitor其中,一定时间后会出现一个弹出对话框:

<p:idleMonitor timeout="10000"
onidle="idleDialog.show()" onactive="idleDialog.hide()"/>

我从来没有用过它在实践中,但是当我看到这个组件,我认为这可以作为一个会话超时预警系统。 也许你能适应它的特殊功能要求。 但请记住,这部分计算客户端的空闲时间,而不是服务器的空闲时间。

分类:JSF 2 时间:2015-03-14 人气:0
本文关键词: JSF 2
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.932 (s). 10 q(s)