`
man1900
  • 浏览: 432865 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

ExtJs J2EE的Session 过时请求(Timeout)的处理

    博客分类:
  • EXT3
阅读更多

在JOffice(OA)中,我们的应用程序是属于那种One Application One Page,所有的请求都是都可以说是通过Ext.data.Connection来处理的,因此可以在这里做一个特别的处理,当session timeout时,让程序直接跳至登录页。或弹出一个登录的窗口,两种方式均可。

 

JOffice(OA)中的安全采用了Spring Security 2,即用户在未登录或session过期中,其访问的地址就会被转移至login.jsp,配置如下所示:

 

<http auto-config="true" access-denied-page="/403.jsp" lowercase-comparisons="true" > 
 <form-login default-target-url="/index.jsp" login-page="/login.jsp" authentication-failure-url="/login.jsp?error=true" login-processing-url="/j_security_check" />
  
        <logout logout-url="/j_logout.do" logout-success-url="/login.jsp"/> 
   		
   		<remember-me key="RememberAppUser"/>
    </http>

 那么,当页面跳至login.jsp时,我们在该页面设置一个Response Header告诉浏览器,该用户的session已经timeout,代码如下所示:

	<%
			response.addHeader("__timeout","true");
		%>

 而剩下的就是处理该标识:

 

代码如下:

Ext.onReady(){
        Ext.util.Observable.observeClass(Ext.data.Connection);
	Ext.data.Connection.on('requestcomplete', function(conn, resp,options ){
		if (resp && resp.getResponseHeader && resp.getResponseHeader('__timeout')) {
	        window.location.href=__ctxPath+'/login.jsp';
	    }
	});
}

 

说明:

Connection的这个requestcomplete事件是所有的Ajax请求都必须触发的,所以把它作为总的入口。

 

4
0
分享到:
评论

相关推荐

    基于ExtJS与J2EE的人力资源管理系统的设计与实现

    本文针对企业人力资源管理系统的实际需求,基于ExtJS+SSH的实现。

    extjs3.0 ajax 同步请求

    此外,还可以通过回调函数来处理请求成功或失败的情况。 #### 四、兼容性问题及解决方案 在上述代码片段中提到了一个关于浏览器兼容性的问题:“在 Firefox 12 中使用时,无法在 IE 和 Chrome 中使用,需要进行...

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

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

    extjs session失效解决方案

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

    ExtJs异步请求和特殊用途

    - `timeout`可以设置请求超时时间。 - `jsonData`或`xmlData`可以用来直接传递JSON或XML数据,避免手动编码。 - `useDefaultXhrHeader`控制是否发送默认的`X-Requested-With`头,用于标识Ajax请求。 7. **特殊...

    extjs动态树struts请求数据

    在这一过程中,Struts作为MVC框架负责后端业务逻辑处理,而ExtJS则作为前端展示库,通过Ajax请求获取Struts返回的数据,并将其渲染为动态树形结构。主要涉及的知识点包括: 1. **ExtJS动态树(TreePanel)**: ExtJS...

    extjs ajax同步请求所需js

    // 处理请求失败的情况 } }); ``` 2. **参数设置**: - `url`: 请求的服务器URL。 - `method`: HTTP请求方法,如'GET', 'POST'等。 - `params`: 发送到服务器的数据,可以是对象或字符串。 - `success`和`...

    EXTJS实例 EXTJS树,可以编辑的EXTJS,EXTJS3.0

    EXTJS是一种基于JavaScript的前端开发框架,主要用于构建富互联网应用程序(RIA)。在EXTJS中,树形组件(Tree)是一种常见的数据展示形式,它能够以层级结构显示数据,广泛应用于目录浏览、组织架构展示等场景。...

    extjs对ajax的支持文档

    - `timeout`: 请求超时时间。 - `withCredentials`: 是否开启跨域资源共享(CORS)的cookies。 3. **回调函数**: - `success`: 成功响应时调用的函数,接收响应数据。 - `failure`: 失败时调用的函数,可以...

    J2EE最新精品项目源码Struts2.0+Hibernate+Spring+ExtJS

    Struts2允许开发者通过拦截器(Interceptor)来处理请求,可以方便地实现业务逻辑和视图的解耦。此外,它还支持多种视图技术,如JSP、FreeMarker等,并且与各种数据访问技术如Hibernate、iBatis等集成良好。 **...

    J2EE平台下SSH+JBPM+ExtJs

    网络课程包含了以下主要的技术面:前端采用Extjs4.x;后台使用目前中小型开发较为常用的SSH2作为框架,囊括了JBPM4.4工作流引擎。 课程经由基础学习向高阶跨进,一步一步介绍了前后台的关系,以及前后台的整合、JBPM...

    Extjs+Designer+Preview 官方的extjs可视化IDE设计工具3.0 汉化版

    ExtJS是一款基于JavaScript的开源框架,用于构建富客户端应用程序。它提供了一整套组件和工具,使得开发者可以创建复杂的、交互式的Web应用。Designer是ExtJS的一个配套工具,它是一个可视化的界面设计环境,允许...

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

    2. 如果`findHtml ,说明是Ajax请求,那么在session过滤器中,响应头添加`sessionstatus`为`timeout`,并返回一个包含错误信息的JSON对象,指明会话超时和重定向URL: ```java response.addHeader("sessionstatus...

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

    ExtJS的事件系统使得绑定和处理这些事件变得简单。 7. **可视化编辑**:为了提高用户体验,设计器通常会提供撤销/重做、选择、复制/粘贴等可视化编辑功能。这些可以通过ExtJS的命令模式和组件方法实现。 8. **验证...

    extJs3升级extjs4方案

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

    extJS4升级至extJS6.6所遇问题及解决方案

    项目进行前端框架升级——extJS 4升级至extJS6.6所遇的一些问题及相对应的解决方案建议

    轻松搞定Extjs 带目录

    - 分页功能是处理大量数据时的常见需求,在Extjs中可以通过特定的组件如GridPanel实现分页。 #### 13. 表单组件 Extjs中的表单组件丰富,包括: - FormPanel类用于封装表单。 - 各种表单输入元素的配置和使用。 ...

    ExtJs事件处理 ajax

    - ExtJs提供了`Ext.Ajax`类来处理Ajax请求。例如,发送一个GET请求: ```javascript Ext.Ajax.request({ url: 'your-url', method: 'GET', success: function(response) { var result = Ext.decode(response....

    Extjs4使用要点个人整理

    在ExtJS中,可以设置请求的timeout属性来指定超时时间,并通过监听'exception'事件来处理超时情况。 8. **改变树的默认样式**:`Ext tree更改默认样式.txt`会介绍如何通过CSS或组件配置来定制树形控件的外观,包括...

    Extjs 2.2 Extjs 3.21 js

    在2.2中,ExtJS引入了许多功能和改进,如表格排序、分页、拖放支持以及对Ajax请求的增强处理。它提供了丰富的组件库,包括网格、表单、菜单、工具栏等,使得开发者能够快速构建复杂的用户界面。此外,ExtJS 2.2也...

Global site tag (gtag.js) - Google Analytics