關(guān)于項(xiàng)目框架設(shè)計(jì)的一點(diǎn)學(xué)習(xí)
摘要: 這兩天又在接觸一個(gè)新項(xiàng)目,對(duì)于如何設(shè)計(jì)一個(gè)項(xiàng)目的框架有了點(diǎn)概念,關(guān)于web項(xiàng)目(對(duì)于oa系統(tǒng)來(lái)說(shuō))的主體感覺(jué)比較需要設(shè)計(jì)的幾部分為:
1. 頁(yè)面模板定義:關(guān)于view層展示,無(wú)論對(duì)于top(頂層菜單)+left(左邊樹(shù)狀菜單)+right(主體內(nèi)容)結(jié)構(gòu)還是left+right結(jié)構(gòu),都需要首先定制一些模板,如struts中可使用tiles定義。
2. 分頁(yè)標(biāo)簽:自定義一個(gè)比較通用的分頁(yè)標(biāo)簽或者使用一些框架中自帶的(如struts-menu或者JSF中的t:dataScroller),不過(guò)比較好的做法是基于其源碼編寫自己的分頁(yè)標(biāo)簽。
3. DB設(shè)計(jì):可使用Power Deisign等設(shè)計(jì)數(shù)據(jù)庫(kù)表結(jié)構(gòu),產(chǎn)生相關(guān)的表。
4. 代碼自動(dòng)生成:編寫代碼生成腳本如build.xml文件的編寫(根據(jù)DB生成代碼,也可以忽略3,先建model,再?gòu)膍odel生成代碼和數(shù)據(jù)庫(kù)schema),生成Struts、Spring、Hibernate相關(guān)文件。
閱讀全文
Struts學(xué)習(xí)筆記之Action
摘要: 下面是Struts中的一些常用Action如DispatchAction/LookupDispatchAction/MappingDispatchAction/ForwardAction/IncludeAction的總結(jié)
1.DispatchAction extends BaseAction
一般的Action如
,在這里UserAction只需要繼承父類(extends Action類),然后重寫父類的execute方法,在execute中實(shí)現(xiàn)具體的控制轉(zhuǎn)向。
對(duì)于同一個(gè)formbean上進(jìn)行的新增、修改、刪除等,我們需要分發(fā)不同的Action,這里有兩種做法。
閱讀全文
Java對(duì)象初始化順序
摘要: 由此可知當(dāng)新建一java對(duì)象(上面main方法中new B())時(shí),它的內(nèi)部初始化順序?yàn)椋?
1. 父類靜態(tài)成員和靜態(tài)初始化塊,按在代碼中出現(xiàn)的順序依次執(zhí)行
2. 子類靜態(tài)成員和靜態(tài)初始化塊,按在代碼中出現(xiàn)的順序依次執(zhí)行
3. 父類實(shí)例成員和實(shí)例初始化塊,按在代碼中出現(xiàn)的順序依次執(zhí)行
4. 父類構(gòu)造方法
5. 子類實(shí)例成員和實(shí)例初始化塊,按在代碼中出現(xiàn)的順序依次執(zhí)行
6. 子類構(gòu)造方法
閱讀全文
Struts學(xué)習(xí)筆記之ActionForm
摘要: ActionForm中比較常用的兩個(gè)方法是reset()和validator():
// 恢復(fù)ActionForm屬性的默認(rèn)值,如把boolean型設(shè)為true/false,字符串設(shè)為null。
public void reset( ActionMapping mapping, HttpServletRequest request ) { }
// validate只檢查數(shù)據(jù)格式和語(yǔ)法,不檢查數(shù)據(jù)是否符合業(yè)務(wù)邏輯。
public ActionErrors validate( ActionMapping mapping, HttpServletRequest request ) { return (null); }
這兩個(gè)方法的默認(rèn)實(shí)現(xiàn)是不執(zhí)行任何操作,我們可以重寫這兩個(gè)方法來(lái)實(shí)現(xiàn)相關(guān)邏輯。
注:對(duì)于每個(gè)request,控制器都會(huì)先調(diào)用ActionForm的reset()方法,然后表單數(shù)據(jù)組裝到ActionForm中。如ActionForm在request范圍內(nèi),那么對(duì)于每個(gè)新的request請(qǐng)求都會(huì)創(chuàng)建新的ActionForm實(shí)
閱讀全文
Struts源碼學(xué)習(xí)之ActionServlet(二)
摘要: ④ 調(diào)用initChain(); 讀取web.xml中命令鏈文件初始值chainConfig
protected String chainConfig = "org/apache/struts/chain/chain-config.xml";
//④initChain();
// 如沒(méi)有chainConfig參數(shù),則使用默認(rèn)"org/apache/struts/chain/chain-config.xml"
String value;
value = getServletConfig().getInitParameter("chainConfig");
if (value != null) {
chainConfig = value;
}
閱讀全文
Struts源碼學(xué)習(xí)之ActionServlet(一)
摘要: Struts源碼最新版本為struts-1.3.8-src.zip (12-Mar-2007 00:06)
學(xué)習(xí)筆記使用struts-1.3.5-src.zip 的源碼,
下載地址:http://archive.apache.org/dist/struts/source/
2. 下面研究一下struts的源碼,由于servlet設(shè)置了load-on-startup,所以tomcat啟動(dòng)時(shí)會(huì)加載ActionServlet,也就是會(huì)執(zhí)行ActionServlet中的init()方法,Struts 的初始化實(shí)現(xiàn)就是在這里實(shí)現(xiàn)的。
注:由于servlet的生命周期為 web容器加載和實(shí)例化類/init()初始化/service()請(qǐng)求處理/destroy()四個(gè)階段,而init()方法在tomcat啟動(dòng)后只執(zhí)行一次,所以如果想在tomcat啟動(dòng)后用debug模式查看ActionServlet中init()方法的執(zhí)行,可以把上面的
2注釋掉就可以了(不過(guò)真正開(kāi)發(fā)時(shí)還是需要的)。
閱讀全文
Struts學(xué)習(xí)筆記之MVC模式
摘要: View:由JSP、Struts自定義標(biāo)記庫(kù)、資源文件(MessageResources.properties)共同組成,通過(guò)ActionForm實(shí)現(xiàn)JSP表單的封裝,并映射到Model部分中JavaBean的相應(yīng)屬性中,完成用戶數(shù)據(jù)的封裝。
注意:關(guān)于ActionForm,有些人認(rèn)為它屬于Model層(仁者見(jiàn)仁,智者見(jiàn)智)。
事實(shí)上它不是Model,真正的Model應(yīng)該是一個(gè)封裝了業(yè)務(wù)邏輯的的對(duì)象。
而ActionForm僅僅是一個(gè)form-bean,封裝了用戶提交的表單數(shù)據(jù)(物理View),可以在其中進(jìn)行一些非業(yè)務(wù)邏輯的驗(yàn)證,并沒(méi)有真正的映射到模型數(shù)據(jù),因?yàn)榕c層的關(guān)系比較密切,所以實(shí)際上它應(yīng)該算是View層(邏輯View)。
閱讀全文
Axis學(xué)習(xí)筆記
摘要: 實(shí)例(參考了axis-bin-1_4.zip\axis-1_4\samples\userguide中的例子)使用版本為Axis1.4,axis-bin-1_4.zip下載地址:
http://www.apache.org/dist/ws/axis/1_4/
目錄說(shuō)明如下:
jws:存放*.jws文件
src:java源碼
WEB-INF/classes:java編譯后的class文件
WEB-INF/lib:需要用到的jar包
Axis支持三種web service開(kāi)發(fā)方式,分別為:
1、Dynamic Invocation Interface ( DII)
2、Dynamic Proxy方式
3、Stubs方式
閱讀全文
SCJP1.4 and SCWCD1.4學(xué)習(xí)筆記整理下載
摘要: SCJP 1.4 score:81%
SCWCD 1.4 score:91%
下載地址:
藍(lán)小刀的學(xué)習(xí)筆記_SCJP1.4
藍(lán)小刀的學(xué)習(xí)筆記_SCWCD1.4
閱讀全文