關於struts中Action是否執行緒安全問題

2021-08-30 09:20:16 字數 709 閱讀 9805

action到底是thread safe還是unsafe呢 我們來看看servlet是否是thread safe ,action都是繼承至servlet的

看看其他資料的解釋:

jsp預設是以多執行緒方式執行的,這是jsp與asp,php,perl等指令碼語言不一樣的地方,也是它的優勢之一,但如果不注意多執行緒中的同步問題,會使所寫的jsp程式有難以發現的錯誤。

jsp的中存在的多執行緒問題:

當客戶端第一次請求某乙個jsp檔案時,服務端把該jsp編譯成乙個class檔案,並建立乙個該類的例項,然後建立乙個執行緒處理client端的請求。如果有多個客戶端同時請求該jsp檔案,則服務端會建立多個執行緒。每個客戶端請求對應乙個執行緒。以多執行緒方式執行可大大降低對系統的資源需求,提高系統的併發量及響應時間.對jsp中可能用的的變數說明如下:

使它以單執行緒方式執行,這時,仍然只有乙個例項,所有客戶端的請求以序列方 式執行。這樣會降低系統的效能

最後的解決方案是:不要在action裡用例項變數

struts的action是非執行緒安全的。

不要在action中定義例項變數。

在spring的配置檔案中,可以配置action為執行緒安全,即每次呼叫都生成乙個新的例項,而不是只用乙個例項。

bean中設定singleton="true"

property>

property>

bean>

struts2 action中result引數詳解

chain 用來處理action鏈 com.opensymphony.xwork2.actionchainresult dispatcher 用來轉向頁面,通常處理jsp org.apache.struts2.dispatcher.servletdispatcherresult freemaker ...

Struts中action跳轉種類

1 完整的action name someform input somejsp.jsp 這樣做的效果是 execute 僅當validate 成功以後才執行 input屬性指定的是乙個uri。2 僅有form的action 首先,struts會在定義的scope搜尋someform,如果找到則重用,...

struts2 action中result引數詳解

chain 用來處理action鏈 com.opensymphony.xwork2.actionchainresult dispatcher 用來轉向頁面,通常處理jsp org.apache.struts2.dispatcher.servletdispatcherresult freemaker ...