`

ExtJs Session过期

 
阅读更多

参考:http://lym6520.iteye.com/blog/871092

 

1.Ext增加如下代码

Ext.Ajax.defaultHeaders = {  
        'Request-By': 'Ext' // 标识ajax请求
    };
	Ext.Ajax.on('requestcomplete',function(conn,response,options){  
        var json = Ext.decode(response.responseText);  
        if(typeof json == 'object'   
            && !json.success   
            && json.timeout){
            alert('<fmt:message key="msgBox.loginerror.timeout"/>');  
            window.location.href = 'login.jsp';                              
        }
    });

 2.Filter代码:

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {

		List<String> list = new ArrayList<String>();
		list.add(loginUrl);
		list.add("/login");

		HttpServletRequest httpServletRequest = (HttpServletRequest) request;
		HttpServletResponse servletResponse = (HttpServletResponse) response;

		String path = httpServletRequest.getServletPath();
		User user = (User) httpServletRequest.getSession().getAttribute("user");
		if (!list.contains(path) && user == null) {
			String ext = httpServletRequest.getHeader("Request-By");
			if (ext != null && ext.equalsIgnoreCase("Ext")) {
				servletResponse.addHeader("sessionstatus", "timeout");
				PrintWriter out = servletResponse.getWriter();
				out.print("{success:false,timeout:true}");
				out.flush();
				out.close();
			} else {
				servletResponse.sendRedirect(httpServletRequest.getContextPath() + loginUrl);
			}
		}
		chain.doFilter(request, response);
	}

 3.也可以直接判断是否为Ajax提交

String head = httpRequest.getHeader("x-requested-with");
if (head != null && !(head.equalsIgnoreCase("XMLHttpRequest"))) {  
//Ajax提交
} 

 

分享到:
评论

相关推荐

    extjs session失效解决方案

    使用filter来做后台,Ext.Ajax.on('requestcomplete', checkUserSessionStatus, this);用requestcomplete这个方法来异步判断session是否已经失效了

    Extjs 4.1 (MVC) 如何动态加载控制层以及session 过期该如何处理

    通过这种方式,EXTJS 4.1 MVC应用能够智能地处理动态加载控制器,同时优雅地处理Session过期的情况,确保用户有一个顺畅的使用体验。动态加载控制器和Session管理是构建大型、可扩展Web应用的基础,它们有助于提高...

    界面 ext 4.1 mvc框架 动态加载控制层 后台session 过期处理

    在EXTJS中,你可能遇到的问题是,session过期后,某些功能可能不再正常工作,尤其是对于那些在session过期前未被触发的功能。 为了解决这个问题,后端需要做以下判断: 1. 检查请求头中的`accept`字段,通常Ajax...

    Session过期后自动跳转到登录页面的实例代码

    在本文中,我们将探讨如何在Session过期后自动将用户重定向到登录页面。 首先,开发者可能尝试使用Session监听器(HttpSessionListener)来检测Session的过期。监听器是Java Servlet规范的一部分,允许我们注册监听...

    extJs3升级extjs4方案

    ExtJS3 升级到 ExtJS4 方案 ExtJS3 升级到 ExtJS4 需要修改大量代码,主要是因为 ExtJS4 配备了一类新的系统,不向后兼容。在 ExtJS 3 里生成表的几个框架组件,ExtJS4 大多生成 div,这使得 CSS classes 将会失败...

    extjs流程界面设计器参考_ExtJS工作流设计器_extjs工作流_extjs_

    ExtJS是一种广泛使用的JavaScript库,专门用于构建富客户端的Web应用程序。它提供了丰富的组件和工具,使得开发者可以创建出功能强大、用户界面友好的Web应用。在“extjs流程界面设计器参考”中,我们主要关注的是...

    轻松搞定Extjs 带目录

    本书作为Extjs的中文教程,旨在帮助读者快速上手Extjs,其内容涉及Extjs的基础知识和实际应用。 #### 2. JavaScript基础知识 - **类的定义**: Extjs中的类继承于JavaScript原生类,通过Ext.extend来定义。这是...

    ExtJS快速入门 ExtJS快速入门 ExtJS快速入门

    ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门ExtJS快速入门 ExtJS快速入门 ExtJS...

    Extjs 2.2 Extjs 3.21 js

    ExtJS是一种广泛使用的JavaScript库,专门用于构建富客户端Web应用程序。这个压缩包包含了ExtJS的两个重要版本:2.2和3.2.1。这两个版本在Web开发领域都有着广泛的运用,它们各自拥有不同的特性和改进,对于理解...

    ExtJS 7.6 SDK trial

    ExtJS 是一个流行的JavaScript框架,用于构建富客户端的Web应用程序。它提供了丰富的用户界面组件、数据绑定机制和强大的API,使开发者能够创建功能强大的、响应式的桌面和移动应用。7.6版本是ExtJS的一个重要更新,...

    ExtJs3.3中文API.CHM_extjs3.3中文文档_

    ExtJS是一个广泛使用的JavaScript库,专门用于构建富客户端应用程序。版本3.3是该库的一个稳定版本,提供了许多功能和组件,使得Web开发者能够创建功能丰富的、交互性强的用户界面。这个“ExtJS3.3中文API.CHM”文档...

    包含各种类型的extjs小图标,Extjs4小图标

    ExtJS 是一个流行的JavaScript框架,主要用于构建富客户端的Web应用程序。它提供了丰富的组件库、数据管理功能以及强大的用户界面(UI)元素。在标题和描述中提到的“Extjs4小图标”指的是ExtJS 4版本中使用的一系列...

    Extjs4.1 小例子(适合extjs初学者学习使用)

    ExtJS 是一个强大的JavaScript前端框架,用于构建富客户端应用程序。版本4.1是该框架的一个重要里程碑,提供了许多新功能和改进。对于初学者来说,理解并掌握ExtJS 4.1的基础和特性是非常有益的。 标题中的"Extjs...

    extjsapi/extjs3.4

    extjsapi,extjs文档,api手岫

    ExtJs学习笔记 ExtJs Api

    适合ExtJs开发人员extjs技术上手以及深入

    extjs-OA extjs-oa

    一个extjs的OA项目 extjs-OA extjs-oaextjs-OA extjs-oa

    ExtJS经典皮肤集合

    ExtJS是一款功能强大的JavaScript前端框架,它为开发者提供了构建富客户端Web应用的工具。这款框架以其丰富的组件库、可定制的界面和强大的数据绑定机制而闻名。标题中的"ExtJS经典皮肤集合"指的是该框架中包含的一...

    EXTJS讲解个人项目经历

    EXTJS 是一个强大的JavaScript前端框架,它主要用于构建富客户端应用,提供丰富的用户界面组件和灵活的可定制性。EXTJS 的核心在于其组件化的架构,允许开发者构建复杂的UI布局和功能丰富的应用程序。以下是对EXTJS...

    JBPM4 SSH EXTJS JBPM SSH EXTJS

    JBPM4 SSH EXTJS JBPM SSH EXTJS JBPM4 SSH EXTJS JBPM SSH EXTJS JBPM4 SSH EXTJS JBPM SSH EXTJS JBPM4 SSH EXTJS JBPM SSH EXTJS 希望对大家有帮助。

Global site tag (gtag.js) - Google Analytics