網站:JavaEye 作者:liuwei1981 發表時間: 2007-07-30 17:09 此文章來自于 http://www.JavaEye.com
聲明:本文系JavaEye網站原創文章,未經JavaEye網站或者作者本人書面許可,任何其他網站嚴禁擅自發表本文,否則必將追究法律責任!
原文鏈接: http://liuwei1981.javaeye.com/blog/107034
今天總結一下這個系統軟件使用的系統架構。 這個軟件使用的mvc框架有點類似于struts,我是在2005年開始接觸java的,在維護這個系統軟件之前使用的mvc框架包括struts和webwork兩種,相比較之下,與strtus更為類似,或許也是因為strus中控制類部分也是直接操作request吧。 這個mvc框架自身的特點大致有這么幾個: 1.這個mvc框架沒有使用配置文件,在webconfig文件中配置有一個總控的servlet,負責接受頁面提交的請求,進行轉發。 頁面提交請求方式是直接請求這個總控servlet,在提交請求到這個servlet的同時,提交兩個固定的參數,分別是class和method參數,通知servlet將請求轉到相應的類,并調用參數中的方法。 2.總控servlet調用的類為普通的java類,沒有特殊的要求,比如struts中要繼承action父類,方法寫法有嚴格的要求,為靜態方法,不允許有返回參數,接受的參數也固定,如下: public static void expMethod(HttpServletRequest req, 因為沒有使用配置文件,方法調用結束后返回到哪個頁面,在該方法中直接賦值該頁面的具體路徑。這樣修改起來有點復雜,需要重新編譯類,并且在調試的時候,如果需要找到該請求調用的頁面的具體路徑,必須找到這個類和方法,不如使用配置文件一目了然。 3.獲取頁面上的參數,這個框架提供兩種不同的選擇。 框架提供一個Common的對象,該對象封裝了對request的部分操作,提供了一個RequestHash對象,該對象為一個Vector集合,頁面表單提交的數據已經封裝到該集合中,參數獲取方式為,創建一個字符串數組,將需要獲取的參數名稱賦值到該數組中,Common的toData方法返回與字符串數組相對應的參數值,如下 Common common = new Common(req,res);//req request對象,res為response對象 String[] keys = {"param1","param2"}; 此時values數組中,values【0】中的值為param1表單值,相應的為param2的表單值。 如果需要獲取一個數組值,request的操作是getParamValues方法,例如表單中的復選框值,RequestHash對象提供了類似于request的這個操作。 reh.getParameterValues("params"); 4.為顯示頁面賦值也使用了Common對象。 a、 賦值簡單的字符串對象:common.addString("showParam", param); 第一個參數為頁面獲取該參數值使用的名稱,第二個為該對象名稱。 b、一次性賦值多個字符串對象:common.addArray(keys, values); 相對應的,keys為頁面獲取參數值的名稱,values為參數的值。 c、賦值一個復雜的對象,例如自定義對象或者一個List對象: common.addObject("voname", vo); 用法一致。 該框架提供一套通用的js腳本庫和一些統一的賦值規則,例如登錄用戶對象名稱,子系統名稱和提示名稱,因此common對象賦值也提供了一些特殊的方法,只接受參數的值,參數名稱為已定義名稱,因此在為頁面賦值也要注意不要與系統框架已定義對象名稱沖突。 今天寫到這里,下一篇寫寫這個mvc框架的頁面邏輯,標簽還有這個腳本庫的內容吧。 |
《 總結一下維護了一年的一個軟件系統的軟件體系(二) 》 的評論也很精彩,歡迎您也添加評論。查看詳細 >>
JavaEye推薦
上海樂福狗信息技術有限公司:誠聘技術經理和開發工程師
免費下載IBM社區版軟件--它基于開放的標準,支持廣泛的開發類型,讓您的開發高效自主!
京滬穗蓉四地免費注冊,SOA技術高手匯聚交鋒.
上海:優秀公司德比:高薪誠聘 資深Java工程師
廣州:優易公司:誠聘Java工程師,開發經理
上海:尤恩斯國際集團:誠聘開發工程師
北京:優秀公司NHNChina招聘:WEB開發,系統管理,JAVA開發, DBA
文章來源: http://liuwei1981.javaeye.com/blog/107034