Flex session超时处理的解决方案
来源:互联网 发布:闽南语我的心情无人知 编辑:程序博客网 时间:2024/06/05 03:38
Flex中实现session的一个类是FlexContext类,他将session保存在服务端。Flex客户端的每次RPC请求到服务端接口,都需要做session有效性验证,如果验证session失效,则需要按照一点的规则返回失败信息给Flex客户端,以提示客户端如何处理session失效后的流程。
简单例子:
1、web.xml中需要配置session的超时时间
<!-- 配置session超时时间(分钟) -->
<session-config>
<session-timeout>3</session-timeout>
</session-config>
2、JAVA 服务器端RPC服务接口内的session验证代码:session中的"userName"应该由统一登录入口登录成功后保存的值。
//FlexSession是基于HttpSession创建,session也是共享的,如果session超时,则下次请求会重新创建新的session
FlexSession flexSession = FlexContext.getFlexSession();
if(null != flexSession &&null != flexSession.getAttribute("userName"))
{
System.out.println("--> message: " + flexSession.toString() +", name:" + flexSession.getAttribute("userName"));
}
else
{
//利用抛出异常,向客户端发送错误响应,客户端需要监听FaultEvent事件,进行后续处理
throw new Exception("Session失效");
}
3、Flex客户端接受服务器响应的处理流程:
protectedfunction button1_clickHandler(event:MouseEvent):void
{
//自己封装过的获取remote对象的方式,监听FaultEvent事件,接受服务器抛出来的异常
this.remote.getOperation("createDataSet").addEventListener(FaultEvent.FAULT,faultHandler);
this.remote.createDataSet("","", "", "", "", "");
}
/**
* 处理服务器响应异常时的流程
**/
private function faultHandler(event:FaultEvent):void
{
var errorMessage:ErrorMessage = event.messageas ErrorMessage;
if(errorMessage && errorMessage.rootCause)
{
var errorStr:String = errorMessage.rootCause.message;
//简单的验证方式
if(errorStr.indexOf("Session失效") != -1)
{
Alert.show("Session失效,重新登录!");
}
}
}
- Flex session超时处理的解决方案
- Ajax应用中session超时的解决方案
- ajax异步通讯 Session超时的处理
- Session超时和莫名丢失的处理
- Ajax请求Session超时的处理
- Session超时后的事件监听处理
- php session超时处理
- JavaWeb用户Session超时解决方案
- Ajax应用中Session超时的一种解决方案
- Ajax应用中Session超时的一种解决方案
- Ajax应用中Session超时的一种解决方案
- Session、Session的跟踪机制、Session的超时管理、IE禁用Cookie后的session处理
- session超时,处理ajax请求
- session超时,处理ajax请求
- session了解及超时处理
- session 超时,处理ajax请求
- ajax请求session 超时处理
- Ajax请求处理Session超时
- net_device
- jQuery单击记录行自动选中checkbox
- 将博客搬至CSDN
- s3c2440 存储系统和I/O空间 认识
- 递归算法结合数据库解析成java树形结构
- Flex session超时处理的解决方案
- POJ 2840 Big Clock(水题)
- Java的递归算法
- Regular Expression Matching
- IntelliJ IDEA 代码提示的问题
- 使用myEclipse,tomcat 和Axis发布webService
- Class的反编译
- Matlab plotyy画双纵坐标图实例
- 徒手就能掰弯iPhone 6 Plus,你信嘛?