Flex+J2EE获取FlexSession的方法

remote-config.xml中的配置文件:

    <!-- 获取session 示例 -->
  
<destination id="sessionBiz">
   <properties>
    <source>com.my.test.GetSession</source>
    <scope>application</scope>
   </properties> 
  </destination> 

 

 

服务器端代码:

 

public class GetSession {

 /**
  * 设置session
  * @param name session ID
  * @param value session值
  */
 public void setSession(String name, String value){
  FlexContext.getFlexSession().setAttribute(name, value);
 }
 
 /**
  * 获得session
  * @param name session ID
  * @return session对应值
  */
 public String getSession(String name){
  String userrid = (String)
FlexContext.getFlexSession().getAttribute(name);
  return userrid;
 }
}

 

 

客户端代码:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="
http://ns.adobe.com/mxml/2009"
      xmlns:s="library://ns.adobe.com/flex/spark"
      xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"
      initialize="application1_initializeHandler(event)">
 <fx:Script>
  <![CDATA[
   import mx.controls.Alert;
   import mx.events.FlexEvent;
   import mx.rpc.events.ResultEvent;
   
   private function sessionHandler(event:ResultEvent):void
   {
    var usercode:String = String(event.result);
    Alert.show(usercode);
   }

   protected function application1_initializeHandler(event:FlexEvent):void
   {
    sBiz.setSession("老婆", "艳儿");
    sBiz.getSession("老婆");
   }

  ]]>
 </fx:Script>
 <fx:Declarations>
  <!-- 定义remoteObject对象 -->
  
<s:RemoteObject id="sBiz" destination="sessionBiz" showBusyCursor="true">
   <s:method name="setSession"/>
   <s:method name="getSession" result="sessionHandler(event)"/>
  </s:RemoteObject>

 </fx:Declarations>
</s:Application>

 

 

以下设置的timeout都是30分钟,不同的设置方法有不同的参数时间单位,请大家小心。

 
用代码对flex的session_timeout设置: //时间单位为“毫秒”
FlexContext.getFlexSession().setTimeoutPeriod(30*60*1000);
 
 
用代码对flex的flexclient_timeout设置: //时间单位为“毫秒”
FlexContext.getFlexClient().setTimeoutPeriod(30*60*1000);
 
 
用代码对http的session_timeout设置: //时间单位为“秒”
http_session.setMaxInactiveInterval(30*60);
 
 
对某个项目的session_timeout设置在servler.xml或context.xml文件中: //时间单位为“分钟”
<Context path="/test" docBase="/test" defaultSessionTimeOut="30"/>
 
 
对服务器的session_timeout设置在web.xml文件中: //时间单位为“分钟”

 <session-config> 

<session-timeout>30</session-timeout> 

</session-config> 

 

 

 

你可能感兴趣的:(Flex+J2EE获取FlexSession的方法)