Я не очень разбираюсь в Flex, но так как это показалось мне интересным, и мне не нравится, когда вопросы остаются без ответа, я подумал, что мне это удастся. Насколько я понимаю, сессия Flex (HttpFlexSession) и HttpSession - это совершенно разные сущности. Тем не менее, вы должны иметь возможность обмениваться данными между ними.
Существует очень важная бесплатная глава ( Глава 20: Интеграция Flex с J2EE ), которую можно найти в книге Стивена Вебстера и Алистера Маклеода «Разработка богатых клиентов с помощью Macromedia Flex».
Теперь я приведу много цитат из этой бесплатной главы! Особого примечания:
Поддержание состояния
Самый большой скачок в понимании
быть сделано, что больше нет
потребность в состоянии HTTP-сессии. Хотя
ваши запросы между богатым клиентом и
сервер в конечном итоге делается над
HTTP, HTTP был уменьшен до
транспортная технология вместо
технология, которую нам нужно интегрировать
с. Разработчики J2EE удобны
с концепцией размещения атрибутов
и параметры в запросе HTTP и
ответные объекты и ведение
состояние путем хранения объектов в HTTP
сессия. ...
... Flex фактически может предложить доступ к
сеанс HTTP и разрешить Flex
клиент для обработки HTTP-сессии как
«просто еще один объект на сервере».
Однако, по нашему опыту, используя
HTTP-сессия должна быть "плохим запахом"
который идентифицирует рефакторинг
возможность переложить некоторые из ваших
состояние приложения на клиенте.
Далее в этой главе показано, как настроить объект сеанса для доступа клиента Flex.
Получение доступа к сеансам J2EE
Flex предварительно конфигурирует сервлет сеанса
в файле web.xml по умолчанию, который
делает доступной серверную Java
объект, который может быть использован для доступа и
изменить сеанс J2EE для
приложение. Разместив один из
следующие определения удаленных объектов в
наш Сервисный Локатор на services.mxml,
мы делаем доступным для нашего приложения
сервис, который может получать и устанавливать объекты
в сеансе J2EE, а также удалить
объекты из сессии:
<mx:Remote object source="servlet" id="sessionObject" />
<mx:Remote object source="@ContextRoot()" id="sessionObject"/>
Как и с любым другим
тег, сервис сеанса может использовать
обработчики событий и ошибок
обрабатывать запросы на выборку предметов из
сессия. Дескриптор web.xml
определяет название сеанса
сервлет как сервлет; поэтому мы используем
один из следующих примеров для работы
с сеансом J2EE:
sessionObject.session( "set","customerID", 700 );
sessionObject.session( "get", "customerID" );
sessionObject.session("remove", "customerID" );
Эти три примера демонстрируют, как
сервис сеанса используется для получения,
установить или удалить элементы в J2EE
сеанс из клиента Flex.
Может показаться, что, хотя вы можете обмениваться данными сеанса между Flex и бэкэнд-Java, тем не менее можно предположить, что это анти-шаблон .
Что касается мер безопасности, если вы используете Servlet Filters для реализации ограничения IP, тогда ваша безопасность может быть применена ко всем ресурсам в вашем веб-приложении (независимо от того, было ли это в Struts или Flex).