在 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;
if("XMLHttpRequest".equalsIgnoreCase(servletRequest.getHeader("x-requested-with"))){
servletResponse.addHeader("sessionstatus", "timeout");
然后在页面上调用使用Ajax的时候,捕获结果进行超时处理,如下:
$.ajaxSetup({
type: POST,
contentType:"application/json;charset=utf-8",
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 代码,可以提取为一个方法,这样方便在其他地方直接使用。
在ajax方法中往往需要验证用户身份等信息,此时通常需要读写session和cookie。在asp.net的ajax方法中读写session和cookie首先要注意的是ajax方法虽然写在网页中,在ide里自动完成工具也可以直接帮你写出Session[key]或者是Request.Cookie[key],但是这些肯定都不好用,因为ajax方法本身就相当于一个网页,他是通过了asp.net的hand...
在一个项目真正上线的时候,一定会存在一个项目超时的问题,也就是服务端无法及时响应客户端提交的内容。通过对ajax设置超时设置,给用户一个提醒。超时设置:时间定为3秒(2s之后如果没有返回结果 就发送超时设置)服务端设置 这时候发送ajax请求会3s后收到响应。超时提醒(在实际场景会使用div 实际场景)超时和异常给用户一个提醒(通过ajax)在网路异常的时候也给用户一个提醒。可以借助chorme浏览器进行。
前台js改变Session的值(用ajax实现)首先,html代码:复制代码 代码如下:js代码:复制代码 代码如下:var compareContent=”你要改变的值";if (compareContent != "") {document.getElementById("compareIframe").src = "ajax/changeSession.aspx?compareInfo=" ...
From http://blog.csdn.net/01022417/archive/2006/10/17/1337527.aspx在服务器端page_loadAjaxPro.Utility.RegisterTypeForAjax(typeof(test));this.Button_Write.Attributes.Add("onclick","WriteSession();");//写sessi...