Rumah > php教程 > PHP开发 > ajax提交session超时跳转页面使用全局的方法来处理

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

高洛峰
Lepaskan: 2017-01-07 09:33:53
asal
1372 orang telah melayarinya

在过滤器中写入如下方法: 

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); 
} 
}
Salin selepas log masuk

这样,如果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"); 
} 
} 
});
Salin selepas log masuk

更多ajax提交session超时跳转页面使用全局的方法来处理相关文章请关注PHP中文网!


Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Cadangan popular
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan