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

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

ID:40545488

大小:37.00 KB

页数:9页

时间:2019-08-04

Flex Remote Object中直接使用HttpSession的方法_第1页
Flex Remote Object中直接使用HttpSession的方法_第2页
Flex Remote Object中直接使用HttpSession的方法_第3页
Flex Remote Object中直接使用HttpSession的方法_第4页
Flex Remote Object中直接使用HttpSession的方法_第5页
资源描述:

《Flex Remote Object中直接使用HttpSession的方法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、FlexRemoteObject中直接使用HttpSession的方法FlexRemoteObject可以是POJO,JavaBean或是EJB。在面向服务的架构中(ServiceOrientedArchitecture),我们可以用RemoteObject来作为ServiceFacade,利用应用服务器提供的persistentservice来储存状态信息。Flex既可以提供stateful或stateless的remoteobject,另外还有sessionservlet让mxml获取/和储存session中的内容。这一切听上去都很完美,但是有一个问题,FlexRemoteOb

2、ject本身是无法获得任何有关RunningContext的信息,也就是说,你无法从你的RemoteObject中获得HttpSession,HttpRequest和ServletContext。所谓的FlexSessionservlet只是让MXML获得session的内容,而不是直接让RemoteObject获得session。RemoteObject为什么需要获得HttpRequest,HttpSession?既然Flex提供了stateful的remoteobject为什么还要让remoteobject获得RunningContext呢?问题在于Flex中的stateful

3、是基于应用服务器的httpsession,而且你无法控制AMFGateway建立remoteobject的过程。打个简单的比方,我们知道一般的应用服务器中,session的时限只有20分钟,而在很多系统的登陆过程中却有选择保持登陆几个月的选项。其具体实现上就是利用cookie来储存id和passwordhash,通过控制cookie的存活时间来实现的。而在服务器端,一旦session过期了,则可以从cookie中获得id和passwordhash重新登陆一遍,从而达到自动认证用户的目的。如果你的RemoteObject无法获得HttpServletRequest,HttpSessi

4、on,你就无法实现上述的情况。另外,对于小型的应用来说,直接在Remoteobject中获得servletcontext并利用它来储存/获得共享的资源,可以大大降低开发的复杂程度。解决方案要让RemoteObject获得HttpSession,HttpRequest和ServletContext并不是一件容易的事情。这里提供了我的一种方法,供大家参考。希望能抛砖引玉,让大家提出更好,更有效的方案。这个方法的基本思路是利用JAVA提供的ThreadLocalObject。当服务器接收到一个HTTP请求后,这个请求的整个处理过程是运行在同一个线程中的。每个HTTP请求的处理会都运行在各

5、自独立的线程中。而在Flex中,所有AMFRemoteObject的请求都需要通过AMFGatewayServlet,而RemoteObject的建立和调用恰恰就是运行在这个HTTP请求的线程中。有了这个原则,我们就可以建立一个ContextObject,每当请求建立的时候,就可以把这个请求放入Context的ThreadLocal中,而当RemoteObject被AMFGatewayServlet调用的时候,就可以通过访问Context的ThreadLocal来获得其所对应的那个请求。而截获发送到AMFGateway的请求则可以通过ServletFilter来实现。废话不说了,看

6、代码吧!1.添加以下内容到WEB-INF/web.xml中AMFSessionFiltercom.netop.forum.servlets.AMFSessionFilterAMFSessionFilterAMFGatewayServlet2.AMFSessionFil

7、ter的代码/**Createdon1/07/2004*/packagecom.netop.forum.servlets;importjava.io.IOException;importjavax.servlet.Filter;importjavax.servlet.FilterChain;importjavax.servlet.FilterConfig;importjavax.servlet.ServletException;importjavax.servlet.

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。