posts - 10,comments - 2,trackbacks - 0

          網(wǎng)站:JavaEye 作者:liuwei1981 發(fā)表時間: 2007-07-30 17:09 此文章來自于 http://www.JavaEye.com
          聲明:本文系JavaEye網(wǎng)站原創(chuàng)文章,未經(jīng)JavaEye網(wǎng)站或者作者本人書面許可,任何其他網(wǎng)站嚴(yán)禁擅自發(fā)表本文,否則必將追究法律責(zé)任!
          原文鏈接: http://liuwei1981.javaeye.com/blog/107034

                       今天總結(jié)一下這個系統(tǒng)軟件使用的系統(tǒng)架構(gòu)。


                   這個軟件使用的mvc框架有點類似于struts,我是在2005年開始接觸java的,在維護(hù)這個系統(tǒng)軟件之前使用的mvc框架包括struts和webwork兩種,相比較之下,與strtus更為類似,或許也是因為strus中控制類部分也是直接操作request吧。


                  這個mvc框架自身的特點大致有這么幾個:


                  1.這個mvc框架沒有使用配置文件,在webconfig文件中配置有一個總控的servlet,負(fù)責(zé)接受頁面提交的請求,進(jìn)行轉(zhuǎn)發(fā)。


                     頁面提交請求方式是直接請求這個總控servlet,在提交請求到這個servlet的同時,提交兩個固定的參數(shù),分別是class和method參數(shù),通知servlet將請求轉(zhuǎn)到相應(yīng)的類,并調(diào)用參數(shù)中的方法。


                   2.總控servlet調(diào)用的類為普通的java類,沒有特殊的要求,比如struts中要繼承action父類,方法寫法有嚴(yán)格的要求,為靜態(tài)方法,不允許有返回參數(shù),接受的參數(shù)也固定,如下:


                   public static void expMethod(HttpServletRequest req,

                                                  HttpServletResponse res,

                                                  RequestHash reh) throws     Exception {}


                    因為沒有使用配置文件,方法調(diào)用結(jié)束后返回到哪個頁面,在該方法中直接賦值該頁面的具體路徑。這樣修改起來有點復(fù)雜,需要重新編譯類,并且在調(diào)試的時候,如果需要找到該請求調(diào)用的頁面的具體路徑,必須找到這個類和方法,不如使用配置文件一目了然。


                  3.獲取頁面上的參數(shù),這個框架提供兩種不同的選擇。


                     框架提供一個Common的對象,該對象封裝了對request的部分操作,提供了一個RequestHash對象,該對象為一個Vector集合,頁面表單提交的數(shù)據(jù)已經(jīng)封裝到該集合中,參數(shù)獲取方式為,創(chuàng)建一個字符串?dāng)?shù)組,將需要獲取的參數(shù)名稱賦值到該數(shù)組中,Common的toData方法返回與字符串?dāng)?shù)組相對應(yīng)的參數(shù)值,如下


                    Common common = new Common(req,res);//req request對象,res為response對象


                    String[] keys = {"param1","param2"};

                    String[] values = common.toData(reh, keys);


                    此時values數(shù)組中,values【0】中的值為param1表單值,相應(yīng)的為param2的表單值。


                   如果需要獲取一個數(shù)組值,request的操作是getParamValues方法,例如表單中的復(fù)選框值,RequestHash對象提供了類似于request的這個操作。


                   reh.getParameterValues("params");


                   4.為顯示頁面賦值也使用了Common對象。


                  a、 賦值簡單的字符串對象:common.addString("showParam", param);


                   第一個參數(shù)為頁面獲取該參數(shù)值使用的名稱,第二個為該對象名稱。


                   b、一次性賦值多個字符串對象:common.addArray(keys, values);


                   相對應(yīng)的,keys為頁面獲取參數(shù)值的名稱,values為參數(shù)的值。


                  c、賦值一個復(fù)雜的對象,例如自定義對象或者一個List對象:


                      common.addObject("voname", vo);


                    用法一致。


                該框架提供一套通用的js腳本庫和一些統(tǒng)一的賦值規(guī)則,例如登錄用戶對象名稱,子系統(tǒng)名稱和提示名稱,因此common對象賦值也提供了一些特殊的方法,只接受參數(shù)的值,參數(shù)名稱為已定義名稱,因此在為頁面賦值也要注意不要與系統(tǒng)框架已定義對象名稱沖突。


                今天寫到這里,下一篇寫寫這個mvc框架的頁面邏輯,標(biāo)簽還有這個腳本庫的內(nèi)容吧。




          《 總結(jié)一下維護(hù)了一年的一個軟件系統(tǒng)的軟件體系(二) 》 的評論也很精彩,歡迎您也添加評論。查看詳細(xì) >>





          JavaEye推薦
          上海樂福狗信息技術(shù)有限公司:誠聘技術(shù)經(jīng)理和開發(fā)工程師
          免費下載IBM社區(qū)版軟件--它基于開放的標(biāo)準(zhǔn),支持廣泛的開發(fā)類型,讓您的開發(fā)高效自主!
          京滬穗蓉四地免費注冊,SOA技術(shù)高手匯聚交鋒.
          上海:優(yōu)秀公司德比:高薪誠聘 資深Java工程師
          廣州:優(yōu)易公司:誠聘Java工程師,開發(fā)經(jīng)理
          上海:尤恩斯國際集團(tuán):誠聘開發(fā)工程師
          北京:優(yōu)秀公司NHNChina招聘:WEB開發(fā),系統(tǒng)管理,JAVA開發(fā), DBA



          文章來源: http://liuwei1981.javaeye.com/blog/107034
          posted on 2007-07-30 17:09 皇馬嘯西風(fēng) 閱讀(178) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 武胜县| 青冈县| 时尚| 宁远县| 建宁县| 彭泽县| 中西区| 拉萨市| 永宁县| 朔州市| 东海县| 霍邱县| 溧水县| 洪洞县| 吉安县| 老河口市| 郴州市| 平阳县| 遂宁市| 渑池县| 乌兰察布市| 临邑县| 高碑店市| 哈密市| 钟祥市| 鲜城| 洛隆县| 北宁市| 星座| 太和县| 定安县| 金昌市| 鹰潭市| 蒲江县| 同德县| 迁安市| 环江| 穆棱市| 东乡县| 东辽县| 抚远县|