婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Struts中的Action 單例與多例詳解

Struts中的Action 單例與多例詳解

熱門標簽:好操作的電話機器人廠家 泰州泰興400電話 怎么申請 南昌市地圖標注app 如何用中國地圖標注數字點 百度地圖添加標注圖標樣式 企業怎么在聯通申請400電話 南京新思維電話機器人 聊城智能電銷機器人外呼 地圖標注市場怎么樣

 Struts中的Action 單例與多例詳解

struts2中action是多例的,即每次訪問網絡地址的時候都會產生一個action

public class pr_action {
  public pr_action(){
    System.out.println("創建action成功!!!");
  }
  public void execute(){

  }
}

運行代碼可以看到,每次訪問該網絡地址都會在控制臺輸出一次!!!

如果是單例的話,若出現兩個用戶都修改一個對象的屬性值,則會因為用戶修改時間不同,兩個用戶訪問得到的屬性不一樣,操作得出的結果不一樣。

舉個例子:有一塊布長度300cm,能做一件上衣(用掉100cm)和一件褲子(用掉200cm);甲和乙同時訪問得到的長度都是300cm,
甲想做上衣和褲子,他先截取100cm去做上衣,等上衣做完再去做褲子,而乙這時正好也拿100cm去做上衣,那好,等甲做完上衣再做褲子的時候發現剩下的布(100cm)已經不夠做褲子了…..這就是影響系統的性能,解決的辦法就是給甲和乙一人一塊300cm的布,就不會出現布被別人偷用的事情,也是就單實例和多實例的區別

如果設置成單例,那么多個線程會共享一個ActionContext和ValueStack,這樣并發訪問的時候就會出現問題了

struts 2的Action是多實例的并非單例,也就是每次請求產生一個Action的對象。原因是:struts 2的Action中包含數據,例如你在頁面填寫的數據就會包含在Action的成員變量里面。如果Action是單實例的話,這些數據在多線程的環境下就會相互影響,例如造成別人填寫的數據被你看到了。所以Struts2的Action是多例模式的。

問題出現了,可以讓struts2的action變成單例模式么?我在使用spring來生成action的時候,發現生成的action居然全是單例的。這不是讓我的程序默認就跑出bug來么?上個用戶提交的信息,如果下個用戶沒填,居然跑到上個用戶輸入的信息去了。

背景:

1) Struts2會對每一個請求,產生一個Action的實例來處理.

2) Spring的Ioc容器管理的bean默認是單實例的.

首先從數據安全性的問題上考慮,我們的Action應該保證是多例的,這樣才不會出現數據問題。但是如果有的action比如只有admin才能操作,或者某些action,全站公用一個來提高性能,這樣的話,就可以使用單例模式。

不過幸好,Spring的bean可以針對每一個設置它的scope,所以,上面的問題就不是問題了。如果用多例,就在spring的action bean配置的時候設置scope=”prototype”.好吧,問題到此結束。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

您可能感興趣的文章:
  • 關于struts2中Action名字的大小寫問題淺談
  • jQuery ajax請求struts action實現異步刷新
  • Struts2中Action三種接收參數形式與簡單的表單驗證功能
  • struts2通過action返回json對象
  • Struts2 ActionContext 中的數據詳解
  • 詳解在Java的Struts2框架中配置Action的方法
  • 用js模擬struts2的多action調用示例
  • struts2中action實現ModelDriven后無法返回json的解決方法
  • 詳解Struts2中Action訪問Servlet API的幾種方法

標簽:白銀 烏蘭察布 吉林 銅川 臨汾 開封 山南 自貢

巨人網絡通訊聲明:本文標題《Struts中的Action 單例與多例詳解》,本文關鍵詞  Struts,中的,Action,單例,與,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Struts中的Action 單例與多例詳解》相關的同類信息!
  • 本頁收集關于Struts中的Action 單例與多例詳解的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 稷山县| 南涧| 宾阳县| 建德市| 靖安县| 杭锦后旗| 平阴县| 毕节市| 武陟县| 舟山市| 久治县| 通榆县| 连城县| 瓦房店市| 京山县| 临沧市| 安康市| 林西县| 通道| 太白县| 若羌县| 杭锦后旗| 襄汾县| 大渡口区| 黔江区| 大化| 东海县| 明溪县| 四会市| 卓资县| 凤凰县| 清徐县| 宁阳县| 普宁市| 波密县| 福海县| 阿瓦提县| 巍山| 太康县| 锡林浩特市| 大渡口区|