jsp关闭浏览器时,如何清空session

JavaScript012

jsp关闭浏览器时,如何清空session,第1张

jsp关闭浏览器时,清空session的方式如下:

function window.onUnload()

{

var newWindow

if((window.screenLeft>=10000 && window.screenTop>=10000)||event.altKey)

{ newWindow=window.open('destorys.jsp','网页名称','width=0,height=0,top=4000,left=4000')//新窗口将在视区之外打开 newWindow.opener=null sleep(5000) newWindow.close()//新窗口关闭 }

}

function sleep(milisecond)

{ var currentDate,beginDate=new Date() var beginHour,beginMinute,beginSecond,beginMs var hourGaps,minuteGaps,secondGaps,msGaps,gaps beginHour=beginDate.getHours() beginMinute=beginDate.getMinutes() beginSecond=beginDate.getSeconds() beginMs=beginDate.getMilliseconds() do {   currentDate=new Date()   hourGaps=currentDate.getHours() - beginHour   minuteGaps=currentDate.getMinutes() - beginMinute   secondGaps=currentDate.getSeconds() - beginSecond   msGaps=currentDate.getMilliseconds() - beginMs   if(hourGaps<0) hourGaps+=24 //考虑进时进分进秒的特殊情况   gaps=hourGaps*3600+ minuteGaps*60+ secondGaps   gaps=gaps*1000+msGaps }while(gaps<milisecond) }

其中红色部分为你指向清除session的JSp页面。

如下:

 

<%@ page contentType="text/html charset=GBK" %> <%@ page language="java" import="java.lang.*"%> <jsp:useBean id="login" scope="page" class="com.util.Login"/> <% session.removeAttribute("username") session.removeAttribute("userid") session.removeAttribute("power") session.removeAttribute("flag") %>

这样,在每个后台页面引用一个这个JS,就可以实现了。

如楼上所说,关闭时调用一下服务端

不过没有必要,你关闭浏览器后,服务端的缓存会在超时后自动清空的

如果如果用户强制结束任务,你也根本执行不到那个调用脚本,如果觉得缓存占用空间,可以缩短服务端的超时时间