国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

Struts Controller

2019-11-18 14:07:00
字體:
供稿:網(wǎng)友

  Struts Controller

關(guān)于controller中的Action:(ActionServlet也是多線程的)
因為Action類是線程安全的,所以在應(yīng)用程序中創(chuàng)建Action類的唯一實例;Struts中使用lazy Singleton,也就是先判定是否存在實例,若不存在,則創(chuàng)建實例,且對創(chuàng)建實例的代碼進(jìn)行了Synchronization,從而保證同一時刻只有一個線程可以創(chuàng)建Struts的實例。
除此之外,確保Action類不使用實例變量來存儲客戶特有的狀態(tài),對于客戶的特有狀態(tài),應(yīng)該在execute中
使用局部變量來保存。
Struts中大量使用了Resource Wrapper
原理可以這樣形容:所有在資源實際在配置文件中指定,然后再內(nèi)存中由一個類的實例來代表,這樣要修改資源配置的話,只需要修改相應(yīng)的.xml文件就可以了
For Example:
config.ControllerConfig類 ----〉controller元素中配置的信息
ActionMapping-----> action元素,其中findForward()--->findForwardConfig()是否在動作級設(shè)定
forward,然后檢查global-forward元素
ActionForward----->forward元素的;web資源的抽象,比如jsp頁面和java servlet

Action類應(yīng)把業(yè)務(wù)邏輯委托給模型組件
actions包中有五個action類:
ForwardAction:執(zhí)行一個到parameter中配置的uri的forward。
IncludeAction:可以用來實現(xiàn)RequestDispatcher中的include();但我不是很清楚
DispatchAction:需要給出它的子類,為需要在服務(wù)上執(zhí)行的每個功能添加一個方法(必須DispatchAction調(diào)用的Action類包含一個方法)在配置時必須定義parameter屬性,它使用parameter的值決定調(diào)用什么方法
想法是把聯(lián)合完成一個大功能的多個action類放在同一個類中
注重點:DispatchAction使用java Reflection 來調(diào)用正確的方法,但是這些方法必須為public
LookupDispatchAction:是DiapatchAction的子類,但是使用請求參數(shù)值,利用參數(shù)值反向查詢資源邦定,并將其與類中的方法進(jìn)行匹配
SwitchAction:支持從一個應(yīng)用程序模塊切換到另一個
兩個參數(shù):page(目的地)和PRefix(源)

Struts中的實用類:
util中
RequestUtils:線程安全的,沒有實例變量,且其中所有方法均為static的。協(xié)助處理一個請求
ResponseUtils:協(xié)助建立一個響應(yīng)
beanutils中:
BeanUtils:populate():使用key/value映射,把data裝入JavaBean中;
:getProperty():返回property的string表示
:getArrayProperty():string數(shù)組
PropertyUtils:getProperty():返回屬性的值,不改變屬性的類型。
commons:
FastHashMap:多線程的,是HashMap的子類,有slow和fast兩種模式

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 清徐县| 连江县| 郧西县| 北流市| 忻州市| 和林格尔县| 澄迈县| 岳普湖县| 鹤峰县| 德庆县| 衡山县| 九江县| 双牌县| 衡水市| 上高县| 剑川县| 平泉县| 余干县| 孟津县| 丰原市| 始兴县| 和平县| 绥化市| 吉林市| 寿宁县| 招远市| 凤阳县| 大厂| 临湘市| 江孜县| 威海市| 海兴县| 衢州市| 三穗县| 增城市| 岱山县| 伊宁县| 登封市| 瑞丽市| 榆树市| 宿迁市|