亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Ajax中Session失效跳轉登錄頁面的示例分析

發布時間:2021-08-30 15:47:33 來源:億速云 閱讀:119 作者:小新 欄目:web開發

小編給大家分享一下Ajax中Session失效跳轉登錄頁面的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

在Struts應用中,我們發出的請求都會經過 相應的攔截器進行相關處理,一般都會有一個用戶登錄攔截(Session失效攔截);一般請求的話,如果Session失效時,我們會跳到登錄頁面,可是如果我們采用AJAX請求時,將會返回登錄頁面的HTML代碼,這肯定不是我們想要的,那么我們如何解決呢?請看以下步驟:

一、建立攔截器

package com.xxx.planeap.interceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
import com.xxx.common.contants.ConstantsKey;
import com.xxx.common.contants.SessionKey;
import com.xxx.planeap.domain.User;
import com.xxx.planeap.security.SecurityContextUtil;
/**
* 
* @author Goma OMA1989@YEAH.NET
* @version v1.0
* @since 2012-05-31
* 
*/
public class SecurityInterceptor extends AbstractInterceptor {
private static final long serialVersionUID = 1L;
private Logger logger = Logger.getLogger(SecurityInterceptor.class);
@Override
public String intercept(ActionInvocation invocation) throws Exception {
// TODO Auto-generated method stub
String className = invocation.getAction().getClass().getName();
String action = className.substring(className.lastIndexOf(".")+1,className.length());
String actionName = invocation.getProxy().getActionName();
String result;
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
String type = request.getHeader("X-Requested-With");
User user = (User) ActionContext.getContext().getSession().get(SessionKey.CURRENT_USER);
if (user == null) {
logger.debug("SECURITY CHECKED: NEED TO LOGIN");
if ("XMLHttpRequest".equalsIgnoreCase(type)) {// AJAX REQUEST PROCESS
response.setHeader("sessionstatus", ConstantsKey.MSG_TIME_OUT);
result = null;
} else {// NORMAL REQUEST PROCESS
result = ActionSupport.LOGIN;
}
} else {
logger.debug("SECURITY CHECKED: USER HAS LOGINED");
SecurityContextUtil.setCurrentUser(user);
boolean hanPerm = SecurityContextUtil.hasPerm(action, actionName);
logger.debug("SECURITY CHECKED: PERMISSION---"+action+"."+actionName+"="+hanPerm);
result = invocation.invoke();
}
return result;
}
}

二、定義全局AJAX請求結束處理方法

//全局的AJAX訪問,處理AJAX清求時SESSION超時
$.ajaxSetup({
contentType:"application/x-www-form-urlencoded;charset=utf-8",
complete:function(XMLHttpRequest,textStatus){
//通過XMLHttpRequest取得響應頭,sessionstatus 
var sessionstatus=XMLHttpRequest.getResponseHeader("sessionstatus"); 
if(sessionstatus=="timeout"){
//這里怎么處理在你,這里跳轉的登錄頁面
window.location.replace(PlanEap.getActionURI("login"));
}
}
});

也就是ajax發送請求時如果攔截返回一個表示就跳轉,否則執行正常操作。

以上是“Ajax中Session失效跳轉登錄頁面的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

伊宁县| 竹山县| 大埔县| 台中市| 青阳县| 卢氏县| 得荣县| 隆德县| 滦平县| 鹤壁市| 南靖县| 邹城市| 栾川县| 灯塔市| 平陆县| 新疆| 贵南县| 丹巴县| 永康市| 镇沅| 舒城县| 岑巩县| 肥西县| 屏边| 东至县| 紫金县| 吉木乃县| 永修县| 来凤县| 吉木萨尔县| 克拉玛依市| 阿鲁科尔沁旗| 柘城县| 贵港市| 晋宁县| 皋兰县| 图木舒克市| 抚顺县| 专栏| 关岭| 武城县|