代碼江湖之勇闖天涯——struts2——ContextMap

  1. 動作類生命周期:
    明確:動作類是多例的,每次訪問動作方法時,動作類都會實例化,所以是線程安全的。
  2. 請求動作的數據存放:
    我們的問題:
    每次請求時,都會產生一些請求數據,這些數據都存放在什么地方了呢?
    首先我們要明確一點:
    在每次執行動作前,核心控制器StrutsPrepareAndExecuteFilter都會創建一個ActionContext和ValueStack對象。且每次訪問動作都會創建。
    這兩個對象存儲了整個動作訪問期間用到的數據。并且把數據綁定到了線程局部變量(ThreadLocal)上了。所以線程是安全的。

Context Map是OGNL的上下文ActionContext ValueStack
包含以下方面:

  • ActionContext 一個Map,這就類似于keyedHandler結構
  • application 是一個Map,封裝著應用域的屬性
  • session 是一個Map,封裝著會話域的屬性
  • request 是一個Map,封裝著請求域的屬性
  • parameters 是一個Map,封裝著請求正文(參數)的屬性
  • attr 是一個Map,封裝著四個域中的所有屬性
  • value stack(root)
  • action(the current action) 當前動作的引用
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 概述 什么是Struts2的框架Struts2是Struts1的下一代產品,是在 struts1和WebWork的...
    inke閱讀 2,269評論 0 50
  • 從三月份找實習到現在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂視家的研發崗...
    時芥藍閱讀 42,341評論 11 349
  • action中如何接受頁面傳過來的參數 第一種情況:(同名參數) 例如:通過頁面要把id=1 name=tom a...
    清楓_小天閱讀 2,997評論 1 22
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,837評論 18 139
  • 各位親愛的書友,今天這本書是《異想,天開,極富創造力的人做的10件與眾不同的事》。我們每一個人都希望讓生活變得豐富...
    超級連接者王學勇閱讀 3,716評論 0 3