`
yunzhongxia
  • 浏览: 640481 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Blazeds Session timeout

    博客分类:
  • flex
阅读更多

注释:以下代码是针对自己的平台而写的(对flex+java做了封装),现给我的思路。

flex前段监听FaultEvent事件

//调用存储过程 
		public function getCall(procedureName:String, param:Object, resultHandler:Function, faultHandler:Function=null):void {
			if (resultHandler != null)
				ro.getCall.addEventListener(ResultEvent.RESULT, resultHandler);
			if (faultHandler != null){
				ro.getCall.addEventListener(FaultEvent.FAULT, create(checkSession,faultHandler));
			}
			ro.getCall(procedureName,param);
		}
		//验证用户的session是否过期
		public function checkSession(event:FaultEvent,faultHandler:Function):void{
			var errorMessage:ErrorMessage=event.message as ErrorMessage;
			if(errorMessage&&errorMessage.rootCause){
				var errorStr:String=errorMessage.rootCause.message;
				if(errorStr.indexOf("Session失效")!=-1){
					AlertTip.show("Session失效,重新登录!",2000,true,{width:220,height:120,style:"AlertTip"});
					var timer:Timer = new Timer(2000, 1);
    				timer.addEventListener(TimerEvent.TIMER, gotoLogin);
    				timer.start();
					return ;
				}
			}
			faultHandler(event);
		}

 java端在添加日志的时候对Session进行判断

FlexSession session=FlexContext.getFlexSession();
			if(session==null){
				throw new Exception("Session失效,请重新登录");
			}
			if(session.getAttribute("user_id")==null){
				throw new Exception("Session失效,得不到用户的SessionId");
			}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics