成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

HttpSession方法在Flex Remote Object中的使用

開發 后端
本文向大家簡單介紹一下Flex Remote Object中直接使用HttpSession的方法,Flex Remote Object可以是POJO,JavaBean或是EJB。

本文和大家重點討論一下Flex Remote Object中直接使用HttpSession的方法,在面向服務的架構中(Service Oriented Architecture),我們可以用Remote Object來作為Service Facade,利用應用服務器提供的persistent service來儲存狀態信息。

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

問題的背景

Flex Remote Object可以是POJO,JavaBean或是EJB。在面向服務的架構中(Service Oriented Architecture),我們可以用Remote Object來作為Service Facade,利用應用服務器提供的persistent service來儲存狀態信息。

Flex既可以提供stateful或stateless的remote object, 另外還有session servlet讓mxml獲取/和儲存session中的內容。這一切聽上去都很***,但是有一個問題,Flex Remote Object本身是無法獲得任何有關Running Context的信息,也就是說,你無法從你的 Remote Object 中獲得 HttpSession, HttpRequest 和 ServletContext。 所謂的 Flex Session servlet只是讓MXML獲得session的內容,而不是直接讓Remote Object獲得session。

Remote Object為什么需要獲得HttpRequest, HttpSession?
既然Flex提供了stateful的remote object為什么還要讓remote object獲得Running Context呢?問題在于Flex中的stateful是基于應用服務器的http session,而且你無法控制AMFGateway建立remote object的過程。打個簡單的比方,我們知道一般的應用服務器中,session的時限只有20分鐘,而在很多系統的登陸過程中卻有選擇保持登陸幾個月的選項。

其具體實現上就是利用cookie來儲存id和password hash,通過控制cookie的存活時間來實現的。而在服務器端,一旦session過期了,則可以從cookie中獲得id和password hash重新登陸一遍,從而達到自動認證用戶的目的。

如果你的Flex Remote Object無法獲得 HttpServletRequest, HttpSession,你就無法實現上述的情況。另外,對于小型的應用來說,直接在Remote object中獲得servlet context并利用它來儲存/獲得共享的資源,可以大大降低開發的復雜程度。

解決方案

要讓Flex Remote Object獲得HttpSession,HttpRequest和ServletContext并不是一件容易的事情。這里提供了我的一種方法,供大家參考。希望能拋磚引玉,讓大家提出更好,更有效的方案。
這個方法的基本思路是利用JAVA提供的 ThreadLocal Object。當服務器接收到一個HTTP請求后,這個請求的整個處理過程是運行在同一個線程中的。
每個HTTP請求的處理會都運行在各自獨立的線程中。而在Flex中,所有AMF Remote Object 的請求都需要通過 AMF Gateway Servlet,而Remote Object 的建立和調用恰恰就是運行在這個HTTP請求的線程中。

有了這個原則,我們就可以建立一個Context Object,每當請求建立的時候,就可以把這個請求放入 Context 的 ThreadLocal 中,而當 Remote Object 被AMF Gateway Servlet調用的時候,就可以通過訪問 Context 的ThreadLoca l來獲得其所對應的那個請求。

而截獲發送到AMF Gateway的請求則可以通過Servlet Filter來實現。廢話不說了,看代碼吧! 
1. 添加以下內容到WEB-INF/web.xml中
 

  1. <filter> 
  2. <filter-name>AMFSessionFilter </filter-name> 
  3. <filter-class>com.netop.forum.servlets.AMFSessionFilter </filter-class> 
  4. <filter> 
  5.  
  6. <filter-mapping> 
  7. <filter-name>AMFSessionFilter </filter-name> 
  8. <servlet-name>AMFGatewayServlet </servlet-name> 
  9. <filter-mapping>   
  10.  

 2. 如何在Flex Remote Object中使用AMFContext

  1. class YouRemoteService  
  2. {  
  3. public void serviceMethod()  
  4. {  
  5. AMFContext context = AMFContext.getCurrentContext();  
  6. HttpSession = context.getSession();  
  7. ServletContext = context.getServletContext();  
  8.  
  9. HttpServletRequest request = context.getRequest();  
  10. HttpServletResponse response = context.getResponse();  
  11.  
  12. context.setSessionAttribute("attr","value");  
  13. context.setContextAttribute("attr","value");  
  14.  
  15. }  
  16. }  
  17.  

【編輯推薦】

  1. 解析Flex4的十大變化
  2. Flex3到Flex4的轉變新特性值得關注
  3. 解析對AdobeFlex的十大誤解
  4. FlexBuilder3.0與Eclipse3.4的***結合
  5. 學習Flex時必須要知道的10件事情

 
 

責任編輯:佚名 來源: csdn.net
相關推薦

2011-08-17 09:27:55

FlexJava

2010-07-27 13:05:12

Flex

2010-08-09 15:41:13

Flex字體

2010-08-06 13:22:48

FlexCSS

2010-08-09 10:21:56

XMLFlex

2010-08-09 15:30:00

Flex字體

2010-07-30 10:53:53

Flex數據綁定

2010-08-13 09:05:09

Flex4Halo

2010-03-10 11:11:16

Python編程

2022-09-08 09:42:26

JavaScripMapObject

2010-08-13 16:00:43

FlexCairngorm框架

2010-08-11 13:28:46

Flex行為

2020-02-28 09:00:00

ObjectC#編程語言

2009-06-29 17:57:30

ApplicationJSP

2010-08-06 13:37:28

Flex[Bindab

2010-08-06 14:52:35

FlexCSS層疊樣式表

2010-03-10 19:18:10

Python scri

2010-03-15 15:30:35

Python模塊

2010-08-05 13:14:16

Flex布局

2010-08-09 15:52:28

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久中文免费视频 | 黄a大片| 午夜网 | 大陆一级毛片免费视频观看 | 久久草在线视频 | 欧美中文视频 | 狠狠狠干| 精品久久久久久久 | 中文字幕精品一区二区三区精品 | 久久综合一区二区三区 | 久久手机在线视频 | 黄网站涩免费蜜桃网站 | 久久人人国产 | 成人在线免费看 | 国产精品日韩在线 | 国产98色在线 | 日韩 | 欧美中文字幕一区二区三区亚洲 | 日韩无| 亚洲精品自在在线观看 | 国产成人短视频在线观看 | 久久久精品日本 | 国产丝袜av| 夜夜爽99久久国产综合精品女不卡 | 一区二区在线免费观看 | 亚洲精品乱码 | 日韩欧美国产一区二区三区 | 手机av在线 | 成人一区二区三区 | 日韩av高清在线 | 三级高清| 欧美综合在线视频 | 国产综合精品一区二区三区 | 欧美一a一片一级一片 | 91在线看片 | 一区影院 | 国产黄色小视频在线观看 | 久久一二区 | 亚洲一区二区三区福利 | 中文字幕亚洲精品 | 男人天堂网站 | 亚洲视频免费在线播放 |