Web 开发中 Ajax 的 Session 超时处理-阿里云开发者社区

开发者社区> 单红宇> 正文

Web 开发中 Ajax 的 Session 超时处理

简介:
+关注继续查看

在 Java Web 开发中,当session超时的情况下,普通页面的跳转好处理。关于Ajax的请求超时处理,就需要特殊处理下了。

先写一个统一的过滤器,或者拦截器,针对Ajax请求进行过滤处理,下面示例以Filter为例:

    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) throws IOException, ServletException {
        HttpServletRequest servletRequest=(HttpServletRequest)request;
        HttpServletResponse servletResponse=(HttpServletResponse)response;
        // 判断是否是 Ajax 请求,因为 Ajax 请求会追加 x-requested-with=XMLHttpRequest
        if("XMLHttpRequest".equalsIgnoreCase(servletRequest.getHeader("x-requested-with"))){
            servletResponse.addHeader("sessionstatus", "timeout");
        }        
        // 后续代码省略......
    }

然后在页面上调用使用Ajax的时候,捕获结果进行超时处理,如下:

$.ajax({

    // url、data、type 等参数省略......
    
    // 使用 complete 捕获结果,做超时处理
    complete: function (XMLHttpRequest, textStatus) {
        var data = XMLHttpRequest.responseText;
        if (data == "timeout") {
            if( window.top != window.self ){
                window.top.location = "${pageContext.request.contextPath}";
            }
        }
    }
});

根据 Header 判断是否是 Ajax 请求,如果是 Ajax 就丢出一个状态码。

这段处理的 js 代码,可以提取为一个方法,这样方便在其他地方直接使用。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Qt之处理QNetworkAccessManager网络连接超时
简述 在网络操作中,经常会由于各种原因引起网络连接超时,究竟何为网络连接超时? 网络连接超时:在程序默认的等待时间内没有得到服务器的响应 简述 超时原因 Qt 中的网络连接超时 如何处理超时 封装类 超时原因 引起网络连接超时的原因很多,下面,列举一些常见的原因: 网络断开,不过经常显示无法连接 网络阻塞,导致你不能在程序默认等待时间
3932 0
Web系统下Office文档的处理
在web环境中,我们经常遇到需要对Office文档进行各种各样的处理,如:格式转化、统计、修改等各种操作,如果使用Office的客户端对象模型直接处理,一般会遇到:效率低;服务器资源负载大等一系列问题,毕竟Office对象实现时主要针对的是客户端的使用而设计的,对于批量和大负载的处理自然效率欠佳。
771 0
【java开发系列】—— struts2简单入门示例
原文:【java开发系列】—— struts2简单入门示例 上篇推荐:JDK安装 前言   最近正好有时间总结一下,过去的知识历程,虽说东西都是入门级的,高手肯定是不屑一顾了,但是对于初次涉猎的小白们,还是可以提供点参考的。
880 0
【java开发系列】—— spring简单入门示例
原文:【java开发系列】—— spring简单入门示例 回顾   1 JDK安装   2 Struts2简单入门示例 前言   作为入门级的记录帖,没有过多的技术含量,简单的搭建配置框架而已。
653 0
+关注
单红宇
软件从业者,爱好技术。
313
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载