分享一个Flex管理系统 Session超时的时候 用户操作时自动提示并跳转到登陆页面的方法

网页登陆一般都是半小时不动就超时了 对吧

我做了一个会员管理系统,前台是flex的,相信有很多人用flex做这样的管理系统

但是如果session超时后,用户操作没有提示一直在那里点,系统没有任何回应,用户体验是不是就差了呢?

我这里有一个解决的方法

我的flex端是用 URLRequest 和 URLLoader 来从后台获取数据的

于是我只需要重写 URLLoader 判断返回的数据是否包含了提示登陆的信息就行了

下面是重写URLLoader


	import flash.net.URLLoader;
	import flash.net.URLRequest;
	import flash.net.navigateToURL;
	
	import mx.controls.Alert;

	/**
	 * 重写JSONDecoder
	 * 如果是登陆超时了 就提示超时 并且跳转到登陆页面
	 */
	public class MyURLLoader extends URLLoader
	{

		public function MyURLLoader(request:URLRequest=null)
		{
			super(request);
		}
		
		/**
		 * 得到load返回的数据
		 * 判断处理是否超时,需要跳转到登陆页面
                 * 本来我是想重写 data 属性的,无奈没成功,提示不兼容的覆盖,所以只能重新写一个方法来处理data了
		 */ 
		public function getDate():String{
			// 如果是登陆超时了 就提示超时 并且跳转到登陆页面
			if (super.data.toString().indexOf("会员管理系统_海娜韵植物养发") != -1)
			{
				var confirmHandler:Function=function(dlgObj:Object):void
				{
					if (dlgObj.detail == Alert.YES)
					{
						navigateToURL(new URLRequest("/login.html"), "_self");
					}
				}
				Alert.show("登陆超时了,您需要重新登陆会员管理系统!!", "温馨提示:", Alert.YES | Alert.NO, null, confirmHandler, null, Alert.NO);
			}
			return super.data;
		}
	}


然后所有从后台取数据的loder都用MyURLLoader


var actionComplete:Function=function(e:Event):void 

    {  

    // 原来是 loader.data   

   // 本来我是想重写 data 属性的,无奈没成功,提示不兼容的覆盖,  

    //var decoder:JSONDecoder=new JSONDecoder(loader.getDate());  

        

    }  

    var request:URLRequest=new URLRequest(com.hainayun.flex.common.sys.members.Card.ACT_URL + "getAll");  

    request.method="POST";  

    var loader:MyURLLoader=new MyURLLoader(request);  

    loader.addEventListener(Event.COMPLETE, actionComplete); 

当然后台是需要判断当session失效的时候跳转到 /login.html 也就是登陆页面

当session失效后 不管用户点什么操作 都会提示session失效 然后跳转到登陆页面了





后台用的 JFinal做的,用JFinal的 handler和Interceptor做权限过滤非常方便

以前本系统的后台是是用strtus+mybatis做的 现在换JFinal后各种轻松 虽然改动很大 但是很值得啊 现在看起来舒服多了

再次感谢 @JFinal


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值