首先需要导入jquery文件(我的是jquery-3.4.1.js),然后在jsp文件里面写入以下js代码,因为网页关闭与网页刷新各自所需要的时间,我们可以从这方面下手来辨别,从而做出不同的响应。
<script>
let beginTime = 0;//执行onbeforeunload的开始时间
let differTime = 0;//时间差
window.onbeforeunload = function () {
beginTime = new Date().getTime();
};
window.onunload = function () {
differTime = new Date().getTime() - beginTime;
if (differTime <= 5) {
// console.log("浏览器关闭")
$.ajax({
type: "POST", //请求方式是POST
url: "${pageContext.request.contextPath}/user/logout.action?user=${currentUser.account}", //跳转到相应后台,清理session,退出操作
dataType: "JSON", //数据类型是JSON
cache: false, //不需要缓存
success: function (msg) { //执行成功后的提示
console.log(msg);
},
error: function (err) { //执行失败的提示
console.log(err)
}
})
} else { //当时间差>5时,就说刷新啦(这里需要注意的是这个时间差不是固定的,因为有些浏览器执行速度不一样,所以这个界限不一定是5)
// console.log("浏览器刷新")
}
}
</script>