在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请求都必须触发的,所以把它作为总的入口。
分享到:
相关推荐
本文针对企业人力资源管理系统的实际需求,基于ExtJS+SSH的实现。
此外,还可以通过回调函数来处理请求成功或失败的情况。 #### 四、兼容性问题及解决方案 在上述代码片段中提到了一个关于浏览器兼容性的问题:“在 Firefox 12 中使用时,无法在 IE 和 Chrome 中使用,需要进行...
通过这种方式,EXTJS 4.1 MVC应用能够智能地处理动态加载控制器,同时优雅地处理Session过期的情况,确保用户有一个顺畅的使用体验。动态加载控制器和Session管理是构建大型、可扩展Web应用的基础,它们有助于提高...
使用filter来做后台,Ext.Ajax.on('requestcomplete', checkUserSessionStatus, this);用requestcomplete这个方法来异步判断session是否已经失效了
- `timeout`可以设置请求超时时间。 - `jsonData`或`xmlData`可以用来直接传递JSON或XML数据,避免手动编码。 - `useDefaultXhrHeader`控制是否发送默认的`X-Requested-With`头,用于标识Ajax请求。 7. **特殊...
在这一过程中,Struts作为MVC框架负责后端业务逻辑处理,而ExtJS则作为前端展示库,通过Ajax请求获取Struts返回的数据,并将其渲染为动态树形结构。主要涉及的知识点包括: 1. **ExtJS动态树(TreePanel)**: ExtJS...
// 处理请求失败的情况 } }); ``` 2. **参数设置**: - `url`: 请求的服务器URL。 - `method`: HTTP请求方法,如'GET', 'POST'等。 - `params`: 发送到服务器的数据,可以是对象或字符串。 - `success`和`...
EXTJS是一种基于JavaScript的前端开发框架,主要用于构建富互联网应用程序(RIA)。在EXTJS中,树形组件(Tree)是一种常见的数据展示形式,它能够以层级结构显示数据,广泛应用于目录浏览、组织架构展示等场景。...
- `timeout`: 请求超时时间。 - `withCredentials`: 是否开启跨域资源共享(CORS)的cookies。 3. **回调函数**: - `success`: 成功响应时调用的函数,接收响应数据。 - `failure`: 失败时调用的函数,可以...
Struts2允许开发者通过拦截器(Interceptor)来处理请求,可以方便地实现业务逻辑和视图的解耦。此外,它还支持多种视图技术,如JSP、FreeMarker等,并且与各种数据访问技术如Hibernate、iBatis等集成良好。 **...
网络课程包含了以下主要的技术面:前端采用Extjs4.x;后台使用目前中小型开发较为常用的SSH2作为框架,囊括了JBPM4.4工作流引擎。 课程经由基础学习向高阶跨进,一步一步介绍了前后台的关系,以及前后台的整合、JBPM...
ExtJS是一款基于JavaScript的开源框架,用于构建富客户端应用程序。它提供了一整套组件和工具,使得开发者可以创建复杂的、交互式的Web应用。Designer是ExtJS的一个配套工具,它是一个可视化的界面设计环境,允许...
2. 如果`findHtml ,说明是Ajax请求,那么在session过滤器中,响应头添加`sessionstatus`为`timeout`,并返回一个包含错误信息的JSON对象,指明会话超时和重定向URL: ```java response.addHeader("sessionstatus...
ExtJS的事件系统使得绑定和处理这些事件变得简单。 7. **可视化编辑**:为了提高用户体验,设计器通常会提供撤销/重做、选择、复制/粘贴等可视化编辑功能。这些可以通过ExtJS的命令模式和组件方法实现。 8. **验证...
ExtJS3 升级到 ExtJS4 方案 ExtJS3 升级到 ExtJS4 需要修改大量代码,主要是因为 ExtJS4 配备了一类新的系统,不向后兼容。在 ExtJS 3 里生成表的几个框架组件,ExtJS4 大多生成 div,这使得 CSS classes 将会失败...
项目进行前端框架升级——extJS 4升级至extJS6.6所遇的一些问题及相对应的解决方案建议
- 分页功能是处理大量数据时的常见需求,在Extjs中可以通过特定的组件如GridPanel实现分页。 #### 13. 表单组件 Extjs中的表单组件丰富,包括: - FormPanel类用于封装表单。 - 各种表单输入元素的配置和使用。 ...
- ExtJs提供了`Ext.Ajax`类来处理Ajax请求。例如,发送一个GET请求: ```javascript Ext.Ajax.request({ url: 'your-url', method: 'GET', success: function(response) { var result = Ext.decode(response....
在ExtJS中,可以设置请求的timeout属性来指定超时时间,并通过监听'exception'事件来处理超时情况。 8. **改变树的默认样式**:`Ext tree更改默认样式.txt`会介绍如何通过CSS或组件配置来定制树形控件的外观,包括...
在2.2中,ExtJS引入了许多功能和改进,如表格排序、分页、拖放支持以及对Ajax请求的增强处理。它提供了丰富的组件库,包括网格、表单、菜单、工具栏等,使得开发者能够快速构建复杂的用户界面。此外,ExtJS 2.2也...