Flex Remote Object中直接使用HttpSession的方法是怎样的

技术Flex Remote Object中直接使用HttpSession的方法是怎样的Flex Remote Object中直接使用HttpSession的方法是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,

如何在FlexObject中直接使用HttpSession,很多新手都不清楚。为了帮助大家解决这个问题,下面小编就详细讲解一下。需要的人可以从中学习,希望你能有所收获。

我们可以使用远程对象作为服务门面,并使用应用服务器提供的持久服务来存储状态信息。

Flex Remote Object中直接使用HttpSession的方法

问题的背景

flexobject可以是POJO、JavaBean或EJB。在面向服务的体系结构中,我们可以使用远程对象作为服务外观,并使用应用服务器提供的持久服务来存储状态信息。

Flex不仅可以提供有状态或无状态的远程对象,还可以为mxml提供会话servlet来获取/存储会话中的内容。这一切听起来很* * *,但是有一个问题,Flex远程对象本身无法获取任何关于Running Context的信息,也就是说,你无法从你的远程对象获取HttpSession、HttpRequest和ServletContext。所谓的灵活会话servlet只让MXML获得会话的内容,而不是让远程对象直接获得会话。

为什么远程需要获取HttpRequest,HttpSession?

既然Flex提供了有状态远程对象,为什么远程对象要得到Running Context?问题是Flex中的有状态是基于应用服务器的http会话的,你无法控制AMFGateway建立远程对象的过程。举一个简单的例子,我们知道在一般的应用服务器中,会话的时间限制只有20分钟,而在许多系统中,有保持登录几个月的选项。

具体来说,是通过使用cookie存储id和密码哈希,并控制cookie的生存期来实现的。在服务器端,一旦会话过期,就可以从cookie中获取id和密码哈希,重新登录,从而达到自动认证用户的目的。

如果你的Flex远程对象不能得到HTTP HTTP HttpServletRequest,HttpSession,你就不能实现上面的情况。此外,对于小型应用程序,直接从Remote对象获取servlet上下文,并使用它来存储/获取共享资源,可以大大降低开发的复杂性。

解决方案

对于Flex远程对象来说,Httprequest和ServletContext并不是容易获得的东西。下面是我的一个方法,供大家参考。希望能成为大家拿出更好更有效的解决方案的好榜样。

这个方法的基本思想是使用JAVA提供的ThreadLocal Object。当服务器收到一个HTTP请求时,请求的整个过程在同一个线程中运行。

每个HTTP请求的处理将在自己独立的线程中运行。在Flex中,AMF远程对象的所有请求都需要通过AMF网关Servlet,远程对象的建立和调用也只是在这个HTTP请求的线程中运行。

根据这个原则,我们可以创建一个上下文对象。无论何时创建请求,我们都可以将其放在上下文的ThreadLocal中。当远程对象被AMF网关Servlet调用时,我们可以访问上下文的线程来获得相应的请求。

通过Servlet过滤器可以实现对发送到AMF网关的请求的拦截。别废话了,读代码!

1.将以下内容添加到web-INF/web.xml中。

Filter Filter-nameafsessionfilter/Filter-name Filter-classcom . netop . forum . servlet . amfsessionfilter/Filter-classfilter Filter-mapping Filter-nameafssession Filter/Filter-nameservlet-nameafgatewayservlet/servlet-name Filter-mapping 2。如何在Flex远程对象中使用AMFContext

classYouRemoteService { publicationservice method(){ AMFContextcontext=amfcontext。getcurrentcontext();HttpSession=上下文。getSession();ServletContext=context。getservletcontext();HttpServletRequestrequest=上下文。getrequest();httpservletresponse响应=上下文。getresponse();语境。setsessionattribute(' attr ',' value ');语境。setcontextattribute(' attr ',' value ');}}看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/86563.html

(0)

相关推荐

  • 飞机商务舱和头等舱区别,公务舱和商务舱价格区别

    技术飞机商务舱和头等舱区别,公务舱和商务舱价格区别头等舱和商务舱的区别飞机商务舱和头等舱区别:位置头等舱一般设在客舱的前部,座椅的尺寸和前后间距都比较大,长航线甚至会采用平躺式座椅;与头等舱相比,商务舱设在客舱的中部,商

    生活 2021年10月27日
  • 20191227甘泞与第六章学习笔记

    技术20191227甘泞与第六章学习笔记 20191227甘泞与第六章学习笔记第6章 信号和信号处理
    6.1信号和中断
    信号:发给进程的请求,将进程从正常执行转移到中断处理。
    中断:是从I/O设备或协处

    礼包 2021年11月14日
  • python3--文件读写

    技术python3--文件读写 python3--文件读写读写模式
    是否可读
    是否可写
    文件不存在时r


    报错r+

    是,覆盖写入
    报错w

    是,清空原内容
    创建新文件w+

    是,清空原内容

    礼包 2021年11月24日
  • 怎么解决nginx php-cgi 自动关闭问题

    技术怎么解决nginx php-cgi 自动关闭问题这篇文章主要介绍“怎么解决nginx php-cgi 自动关闭问题”,在日常操作中,相信很多人在怎么解决nginx php-cgi 自动关闭问题问题上存在疑惑,小编查阅

    攻略 2021年10月26日
  • Mysql RELICATION对存过的处理是怎样的

    技术Mysql RELICATION对存过的处理是怎样的本篇文章给大家分享的是有关Mysql RELICATION对存过的处理是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说

    攻略 2021年11月20日
  • Server 2005降级到2000的正确操作步骤是什么

    技术Server 2005降级到2000的正确操作步骤是什么Server 2005降级到2000的正确操作步骤是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个

    攻略 2021年12月1日