程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> SSH中Action的單例與多例,SSHAction

SSH中Action的單例與多例,SSHAction

編輯:JAVA綜合教程

SSH中Action的單例與多例,SSHAction


Structs2中的Bean默認的是單例,在整個程序運行期間,每個Bean只有一個實例,只要程序在運行,這個實例就一直存在。

對於Action來說,單例就容易出問題。如果客戶端每次提交的參數都是一樣的,後面提交的值把前面提交的值覆蓋了,那問題還不是很大。但是如果存在可選參數的情況,比如上次提交的是參數1,下次提交的是參數2,但是由於是單例,此時參數1的值不是null,仍然是上次提交的那個值。這樣就很容易出問題。

解決的辦法就是把Action設置成多例的,每次請求都會生成一個Action的實例,這樣多次提交的參數值就不會相互影響了。處理結束以後,Action的實例會被自動回收。和單例相比,多例可能會占用更多的內存,但是不會出bug。

把Bean設置成單例的方法:

<bean id="XXXAction" class="com.XXX.action.XXXAction" scope="singleton">

把Bean設置成多例的方法:

<bean id="XXXAction" class="com.XXX.action.XXXAction" scope="prototype">

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved