關於退出系統時,清除session的方法
在預設情況下,session物件在關閉瀏覽器後並不是立刻被銷燬,因此,為了考慮系統的安全性,在使用者退出時,需要即刻清除session物件,防止他人盜用session物件中的資訊。
清除session物件內容的主要方法如下:
(1)、removeAttribute()方法。該方法是用來刪除session物件中儲存的指定屬性資訊。
例如:session.setAttribute("name", "iverson");session.removeAttribute("name");
(2)、invalidate()方法。該方法可以清除session物件中的所有資訊。
例如:session.invalidate().
通常情況下,關閉瀏覽器後,session資訊需要等到session物件失效後才能清除,如果需要實現關閉瀏覽器後即可清除session資訊,請嘗試用以下方法。
<body onbeforeunload="window.location='logout.jsp'">
logout.jsp頁面中,可以這麼做:<% HttpSession session = request.getSession(); session.invalidate(); %>
現如今,基於MVC
一、清除頁面快取 在jsp頁裡
//在jsp頁裡
<%
response.setHeader(
"Pragma"
,
"No-cache"
);
response.setHeader(
"Cache-Control"
,
"no-cache"
);
response.setDateHeader(
"Expires"
,
0
);
response.flushBuffer();
%>
//在html頁裡
<meta http-equiv=
"Content-Type"
content=
"text/html; charset=gb2312"
>
<META HTTP-EQUIV=
"Pragma"
CONTENT=
"no-cache"
>
<META HTTP-EQUIV=
"Cache-Control"
CONTENT=
"no-cache"
>
<META HTTP-EQUIV=
"Expires"
CONTENT=
"0"
>
二、清除cookie
<%
Cookie killMyCookie =
new
Cookie(
"mycookie"
,
null
);
killMyCookie.setMaxAge(
0
);
killMyCookie.setPath(
"/"
);
response.addCookie(killMyCookie);
%>
三、清除session
<%@ page language=
"java"
session=
"false"
%>
<%
session.invalidate();
%>
//在頁面關閉時清除session,需要捕獲windows.onclose事件,再呼叫清除session方法
四、最簡單清除session
<%
response.setHeader("Pragma", "no-cache");
response.setHeader("Cache-Control", "no-cache,must-revalidate");
response.setDateHeader("Expires", 0);
response.flushBuffer();
%>
<li><a href="javascript:loginOut();"><i class="i i-exit"></i><span class="hidden-xs">退出</span></a></li>
//退出登陸
function loginOut() {
layer.alert("你確定要退出登陸嗎?");
location.replace("<%=path%>/loginController/loginOut"); //loginOut即是你所要轉的退出登入的地址
}
後臺在remove就行了