前端js部分:
思路:设置一个初始时间,监听鼠标事件,如果鼠标有事件,初始值不变,否则间隔1s减少初始值,当初始值小于0的时候,调用后端登出即可
//监听操作
var sessiontime;//这个值是自定的时间,可存数据库,也可自定义
var maxTime; // seconds
if (sessiontime == null) {
maxTime = 30 * 60;
}else{
maxTime = sessiontime * 60;
}
var time = maxTime;
$('body').on('keydown mousemove keyCode', function (e) {
time = maxTime; // reset
});
var intervalId = setInterval(function () {
time--;
if (time <= 0) {
test();
clearInterval(intervalId);
}
}, 1000)
function test() {
var out = 1;
$.ajax({
url: ctx + "cmd/cmdbatomlineuser",
type: 'post',
data: {out: out},
success: function (data) {
if (data == "0") {
// layer.open({
// content: '登录超时 (30 秒未活动),请重新登录。',
// btn: ['确认'],
// yes: function(index, layero) {
// window.location.href="/login";
// },
// });
window.location.href = ctx + "login";
}
},
error: function () {
}
})
}
简简单的登出controller:
@RequestMapping("cmdbatomlineuser")
@ResponseBody
public String cmdbatomlineuser(String out) {
{
System.out.println("前端监听操作事件");
if (out.equals("1")) {
return "0";
}else{
return "";
}
}
}
大佬勿喷,欢迎提意见建议评论!!!!