您好,欢迎访问一九零五行业门户网

ajax提交session超时跳转页面使用全局的方法来处理

在过滤器中写入如下方法:
public void dofilter(servletrequest request, servletresponse response, filterchain chain) throws ioexception, servletexception { httpservletrequest httprequest = (httpservletrequest) request; httpservletresponse httpresponse = (httpservletresponse) response; string url = httprequest.getrequesturl().tostring(); if (httprequest.getsession()== null) { if (httprequest.getheader("x-requested-with") != null && httprequest.getheader("x-requested-with").equals( "xmlhttprequest")) { // ajax请求 httpresponse.setheader("sessionstatus", "timeout"); } else { httpresponse.sendredirect("/test/index.jsp"); return; } } else { chain.dofilter(request, response); } }
这样,如果session超时,而且是ajax请求,就会在响应头里,sessionstatus有一个timeout;
再用一个全局的方法来处理,session超时要跳转的页面。
jquery 可以用$.ajaxsetup 方法,ext也有类似的方法:
//全局的ajax访问,处理ajax清求时sesion超时 $.ajaxsetup({ contenttype : "application/x-www-form-urlencoded;charset=utf-8", complete : function(xmlhttprequest, textstatus) { var sessionstatus = xmlhttprequest.getresponseheader("sessionstatus"); // 通过xmlhttprequest取得响应头,sessionstatus, if (sessionstatus == "timeout") { // 如果超时就处理 ,指定要跳转的页面 window.location.replace("/test/index.jsp"); } } });
更多ajax提交session超时跳转页面使用全局的方法来处理。
其它类似信息

推荐信息