Повторное использование логики извлечения сеанса клиента - PullRequest
0 голосов
/ 06 июня 2011

Я хочу иметь возможность повторно использовать мою существующую логику контроллера независимо от того, был ли отправлен запрос от клиента Flex (с использованием BlazeDS + Spring на бэкэнде) или как простой запрос HTTP POST / GET.В простых случаях все работает хорошо, однако бывают случаи, когда мне нужно получить доступ к некоторым атрибутам сеанса.Сначала я почти исключительно использовал класс FlexContext, но потом я понял, что когда кто-то отправляет HTTP-запрос, тогда контекст Flex явно не определен.

Мой вопрос заключается в том, как лучше всего абстрагировать логику извлечения сессии независимо от типа запроса.Другими словами, я бы создал класс с именем SessionManager, у которого есть метод getSession.Этот класс проверит, существует ли контекст Flex, если он есть, он вернет сеанс этого контекста.Если нет, он просто вернет текущий сеанс HTTP (который, как я полагаю, совпадает с сеансом клиента Flex, но я не был уверен)

Есть комментарии?

1 Ответ

2 голосов
/ 06 июня 2011

Не уверен, правильно ли я понимаю ваш вопрос.Вы пытаетесь читать из FlexSession, когда гибкий клиент обращается к серверу, и из 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);
}
...