1. 程式人生 > >關於退出系統時,清除session的方法

關於退出系統時,清除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

架構模式的框架,很多。所以,上述程式碼,根據所選的MVC框架不同,直接與jsp頁面進行分離。

一、清除頁面快取 在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就行了