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)

相关推荐

  • Python导入模块成员的方式有哪些

    技术Python导入模块成员的方式有哪些这篇文章主要讲解了“Python导入模块成员的方式有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python导入模块成员的方

    攻略 2021年11月25日
  • 熟络是什么意思,你觉得“自来熟”是好事吗

    技术熟络是什么意思,你觉得“自来熟”是好事吗当今社会社交十分重要,因为现在社会是一个配合的社会,不是单打独斗的社会,很多事情都要配合来完成,因此良好的社交能力就非常重要,有的人很外向,不管见到谁都立刻表现的很熟络,也就是

    生活 2021年10月29日
  • 如何解决Hibernate批量更新问题

    技术如何解决Hibernate批量更新问题这篇文章主要介绍了如何解决Hibernate批量更新问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。对于Hib

    攻略 2021年12月8日
  • MySQL数据库索引和事务的作用是什么

    技术MySQL数据库索引和事务的作用是什么本篇内容主要讲解“MySQL数据库索引和事务的作用是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL数据库索引和事务的作

    攻略 2021年12月8日
  • 关于安全的手抄报,四年级关于安全手抄报的内容

    技术关于安全的手抄报,四年级关于安全手抄报的内容安全”这根弦时刻都不能放松。每个人都渴望有一个幸福、温馨的家庭,每个人都希望有一个健康的身体,每个人都希望快乐地生活,然而,各种安全事故却时有发生,给许多人带来了极大的痛苦

    生活 2021年10月25日
  • Disruptor中锁对性能有什么影响

    技术Disruptor中锁对性能有什么影响本篇文章给大家分享的是有关Disruptor中锁对性能有什么影响,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Di

    攻略 2021年10月21日