Session時間超時前后端的設置


最近做時間超時,記錄一下。

session失效時間設置 

1.用JAVA設置 ,優先級最高,不過只能設置單個session的超時時間,到該session,摧毀后,就不起作用了。

request.getSession().setMaxInactiveInterval(1800);/*秒為單位*/  

對於上面的問題有兩個解決辦法。

1).在公共主頁,每次登陸后,調用該設置方法。

2),通過

<listener>
	<listener-class></listener-class>
</listener>

  每次session創建的時候設置超時時間。

2. 修改web.xml

<session-config> 
    <session-timeout>30</session-timeout>  
</session-config> 

3.修改comcat 下面的Web.xml同2 

 

設置完成后,對於一般的請求當session失效后,會起作用,但是對於ajxa異步請求,是不起作用的,也就是頁面不會退出的。

這與這,需要設置攔截器,判斷每個請求session是否存在,如果不存在,就發生跳轉。

public static boolean isAjax(final HttpServletRequest request) {
		if (request != null) {
			String ajaxHeadValue =     request.getHeader(“X-Requested-With”);
			if (ajaxHeadValue == null) {
				ajaxHeadValue = request.getHeader("HTTP_X_REQUESTED_WITH");
			}

			if (“XMLHttpRequest”.equals(ajaxHeadValue)) {
				return true;
			}
		}
		return false;
	}            

  

if ( HttpHelper.isAjax(request)) {
	response.setStatus(“602”);
	response.setContentType("text/plain; Charset=UTF-8");
			
}

  接着在前台寫一個全局js  \

if(typeof($)!="undefined"){  
    $.ajaxSetup({  
        contentType : "application/x-www-form-urlencoded;charset=utf-8",  
        complete : function(XMLHttpRequest, textStatus) {  
           if (XMLHttpRequest.status == 602) {
                    window.top.location.reload();
            }
        }  
    });  
}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM