重用客户端会话提取逻辑

时间:2011-06-06 10:04:44

标签: java flex session blazeds

我希望能够重用我现有的控制器逻辑,无论是从Flex客户端发送请求(在后端使用BlazeDS + Spring),还是作为简单的HTTP POST / GET请求。对于简单的情况,事情可以正常工作,但是,在某些情况下我需要访问一些会话属性。起初,我几乎专门使用FlexContext类,但后来我意识到当发送HTTP请求时,Flex Context显然是未定义的。

我的问题是,无论请求的类型如何,抽象会话提取逻辑的最佳方法是什么。换句话说,我会创建一个名为SessionManager的类,它有一个方法getSession。此类将检查是否存在Flex上下文,如果存在,它将返回该上下文的会话。如果没有,它将只返回当前的HTTP会话(我假设它与Flex客户端会话相同,但我不确定)

有任何意见吗?

1 个答案:

答案 0 :(得分:2)

不确定我是否理解你的问题。您是否尝试在Flex客户端访问服务器时从FlexSession读取,并且在非Flex客户端的情况下从HttpSession读取?如果是这样,也许你可以试试这样的东西...我目前没有设置测试这个如此抱歉,如果它不起作用或如果这不是你问的问题。

String attributeValue = null;
FlexSession fSession = FlexContext.getFlexSession();
if ( fSession != null ) 
{
     attributeValue = (String)fSession.getAttribute(attributeKey);
}
else // No flex session
{
    HttpSession hSession = request.getSession(); 
      // Where request is the HttpServletRequest
    attributeValue = (String)hSession.getAttribute(attributeKey);
}