struts2的拦截器拦截ajax请求
拦截器代码:
@Override
public String intercept(ActionInvocation invocation) throws Exception {
ActionContext ctx = invocation.getInvocationContext();
Map session = ctx.getSession();
User user = (User) session.get(Constants.SESSION_USER_KEY);
if (user == null) {
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
PrintWriter pw = response.getWriter();
String flag = "";
//对ajax请求的拦截
if (request.getHeader("X-Requested-With") != nullreturn null;
//不是异步请求的拦截
} else {}
jsp页面代码
// 登录验证
Ext.Ajax.on('requestcomplete',checkUserSessionStatus, this); //所有的异步请求都会走的事件
function checkUserSessionStatus(conn,response,options){
var str = response.responseText;
if(str == '9999'){
alert('连接已超时,请重新登录!');
window.location.href = 'login.jsp';
}
}