版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
基于MVC的WEB文章系統(tǒng)詳細(xì)設(shè)計(jì)報(bào)告——分類模塊分類管理模塊一引言MVC設(shè)計(jì)模式起源于Smalltalk語(yǔ)言,它由以下三個(gè)部分組成:模型(model),視圖(view),控制器(Controller).表1.1定義了這些組件。組件描述模型(model)封裝數(shù)據(jù)對(duì)象。模型用來(lái)封裝和顯示數(shù)據(jù)對(duì)象。視圖(view)作為模型的顯示,它表示數(shù)據(jù)對(duì)象的當(dāng)前狀態(tài)控制器(Controller)定義對(duì)用戶的輸入執(zhí)行相應(yīng)操作的接口,它用來(lái)操作模型(model)和數(shù)據(jù)對(duì)象使用MVC的好處包括如下:可靠性:表示層和業(yè)務(wù)層別分離,這樣就允許你更改你的表示層代碼而不用重新編譯你的模型(model)和控制器(Controller)代碼高重用和可適應(yīng)性:MVC模式允許你使用各種不同樣式的視圖來(lái)訪問(wèn)同一個(gè)服務(wù)器端的代碼。它包括任何WEB(HTTP)瀏覽器或則無(wú)線瀏覽器(WAP)。較低的生命周期成本:MVC使降低開發(fā)和維護(hù)用戶接口的技術(shù)含量成為可能。快速的部署:開發(fā)時(shí)間會(huì)得到相當(dāng)大的縮減,它使程序員(java開發(fā)人員)集中精力于業(yè)務(wù)邏輯,界面程序員(HTML和JSP開發(fā)人員)集中精力于表現(xiàn)形式上??删S護(hù)性:分離表示層和業(yè)務(wù)邏輯層也使得基于Struts的Web應(yīng)用更易于維護(hù)和修改。 WEB文章系統(tǒng)是在網(wǎng)上發(fā)布文章的系統(tǒng)?;ヂ?lián)網(wǎng)發(fā)展至今,網(wǎng)絡(luò)上的各種文檔資料數(shù)不勝數(shù)。這么多的文檔資料當(dāng)然不是一個(gè)網(wǎng)頁(yè)一個(gè)網(wǎng)頁(yè)的制作出來(lái)的,而是通過(guò)文章發(fā)布系統(tǒng)動(dòng)態(tài)進(jìn)行添加和管理的。本課程設(shè)計(jì)就是實(shí)現(xiàn)通過(guò)Struts實(shí)現(xiàn)WEB文章管理系統(tǒng)。 本系統(tǒng)通過(guò)Struts實(shí)現(xiàn),實(shí)現(xiàn)了表現(xiàn)層、邏輯層和數(shù)據(jù)三層模式,做到了表示層和邏輯處理層的代碼分離。并充分利用Struts的特性,實(shí)現(xiàn)了部分國(guó)際化,目前包括簡(jiǎn)體中午、繁體中文和英文三個(gè)版本。1.1編寫目的
1.1.1為開發(fā)人員、維護(hù)人員、客戶之間提供共同的協(xié)議而創(chuàng)立基礎(chǔ),對(duì)WEB文章系統(tǒng)軟件功能的實(shí)現(xiàn)作使命描述。
1.1.2本說(shuō)明書的預(yù)期讀者為客戶、業(yè)務(wù)或需求分析人員、測(cè)試人員、用戶文檔編寫者、項(xiàng)目管理人員。1.2工程的名稱基于MVC的WEB文章系統(tǒng)
1.3定義,術(shù)語(yǔ),縮寫詞和略語(yǔ)
Struts:是一個(gè)技術(shù)框架,由CraigR.McClanahan編寫,并且在2000年的時(shí)候捐獻(xiàn)給了ASF,目前,有很多組織和個(gè)人參與Struts框架的開發(fā),使得Struts保持高速成長(zhǎng),同時(shí),利用Struts開發(fā)的應(yīng)用越來(lái)越多,使其成為web應(yīng)用MVC模式中VC部分事實(shí)上的標(biāo)準(zhǔn)。模塊的獨(dú)立性:是指軟件系統(tǒng)中每個(gè)模塊只涉及軟件要求的具體的子功能,而和軟件系統(tǒng)中其他的模塊的接口是簡(jiǎn)單的。WEB文章管理系統(tǒng):以B/S模式對(duì)文章添加管理的網(wǎng)絡(luò)應(yīng)用系統(tǒng)??梢詫?shí)現(xiàn)文章的添加、刪除、修改等功能。二模塊功能[功能名稱]:分類添加[功能說(shuō)明]:添加一個(gè)新的分類。[數(shù)據(jù)結(jié)構(gòu)]: 分類名稱:字符串 父分類名:字符串 全名:字符串[功能名稱]:分類修改[功能說(shuō)明]:修改所選擇的分類。[數(shù)據(jù)結(jié)構(gòu)]: 分類名稱:字符串 父分類名:字符串 全名:字符串[功能名稱]:分類刪除[功能說(shuō)明]:刪除所選擇的分類。[數(shù)據(jù)結(jié)構(gòu)]: 分類名稱:字符串 父分類名:字符串 全名:字符串分類的管理模塊,對(duì)分類進(jìn)行添加、刪除、修改等等。所有添加的文章都要求有分類。此模塊采用遞歸算法,突破了二級(jí)分類的束縛,實(shí)現(xiàn)了無(wú)限級(jí)分類。并實(shí)現(xiàn)了分類的動(dòng)態(tài)聯(lián)動(dòng),即選擇父分類,則動(dòng)態(tài)顯示此父分類下的所有子分類。三數(shù)據(jù)描述書籍分類表(category)字段名稱描述數(shù)據(jù)類型字段長(zhǎng)度可否為空IdId號(hào)intauto_increment否ParentId父節(jié)點(diǎn)Int否Name名稱varchar50否FullNameFullName全稱varchar250否書籍表(Books)字段名稱描述數(shù)據(jù)類型字段長(zhǎng)度可否為空IdId號(hào)intauto_increment否Category書籍分類Int否Title書名varchar50否ISBNISBN號(hào)Int否Author作者varchar20否PubTime出版日期datetime否Publishing出版社varchar30否Desc簡(jiǎn)介varchar300否Count已購(gòu)買數(shù)Int否Hits點(diǎn)擊數(shù)Int否Prise售價(jià)Int否Sales折扣Int否四流程分析五用戶接口1分類管理2分類列表頁(yè)面3文章顯示頁(yè)面六程序代碼分類管理CategoryData.javaimportjava.sql.Connection;importjava.sql.Statement;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.util.ArrayList;importjava.util.Collection;importjava.util.Iterator;import.cumt.util.DataBaseConn;publicclassCategoryData{privatestaticCollectionAllChildren=null;/***Getthecategorybyid;*@paramidint*@throwsException*@returnCategory*/publicstaticCategorygetCategory(intid)throwsException{Categorycategory=newCategory();Connectionconn=null;PreparedStatementpstmt=null;ResultSetrs=null;try{conn=DataBaseConn.getConnection();pstmt=conn.prepareStatement("SELECT*FROMcategoryWHEREid=?");pstmt.setInt(1,id);rs=pstmt.executeQuery();if(rs.next()){category.setId(id);category.setParentId(rs.getInt("ParentId"));category.setName(rs.getString("Name"));category.setFullName(rs.getString("FullName"));}else{thrownewException("Sorry:TheCategoryNotFound!");}}finally{if(rs!=null){rs.close();}if(pstmt!=null){pstmt.close();}if(conn!=null){conn.close();}}returncategory;}/***Getallofthecategory*@throwsException*@returnCollection*/publicstaticCollectiongetCategorys()throwsException{Collectioncategorys=newArrayList();Categorycategory=null;Connectionconn=null;PreparedStatementpstmt=null;ResultSetrs=null;try{conn=DataBaseConn.getConnection();pstmt=conn.prepareStatement("SELECT*FROMcategory");rs=pstmt.executeQuery();while(rs.next()){category=newCategory();category.setId(rs.getInt("id"));category.setParentId(rs.getInt("ParentId"));category.setName(rs.getString("Name"));category.setFullName(rs.getString("FullName"));categorys.add(category);}}finally{if(rs!=null){rs.close();}if(pstmt!=null){pstmt.close();}if(conn!=null){conn.close();}}returncategorys;}/***Getthenearestchildcategorys*@paramparentIdintTheparentId*@returnCollectionThechildcategoryscollection*@throwsException*/publicstaticCollectiongetNearestChildCategory(intparentId)throwsException{Collectionchildren=newArrayList();Categorycategory=null;Connectionconn=null;PreparedStatementpstmt=null;ResultSetrs=null;try{conn=DataBaseConn.getConnection();pstmt=conn.prepareStatement("SELECT*FROMcategoryWHEREParentId=?");pstmt.setInt(1,parentId);rs=pstmt.executeQuery();while(rs.next()){category=newCategory();category.setId(rs.getInt("id"));category.setParentId(rs.getInt("ParentId"));category.setName(rs.getString("Name"));category.setFullName(rs.getString("FullName"));children.add(category);}}finally{if(rs!=null){rs.close();}if(pstmt!=null){pstmt.close();}if(conn!=null){conn.close();}}returnchildren;}/***Thismethodtoaddacategoryintodatabase*@paramcategoryCategory*@throwsException*/publicstaticvoidaddCategory(Categorycategory)throwsException{Connectionconn=null;PreparedStatementpstmt=null;try{conn=DataBaseConn.getConnection();pstmt=conn.prepareStatement("INSERTINTOcategory(ParentId,Name,FullName)VALUES(?,?,?)");pstmt.setInt(1,category.getParentId());pstmt.setString(2,category.getName());pstmt.setString(3,category.getFullName());pstmt.executeUpdate();}finally{if(pstmt!=null){pstmt.close();}if(conn!=null){conn.close();}}}/***Thismethodtodeleteacategoryfromdatabase*@paramidint*@throwsException*problem:whendeletethecategorythecategory'snewsandcategory'schildcategory'snewsmustbydeleted*/publicstaticvoiddeleteCategory(intid)throwsException{Connectionconn=null;PreparedStatementpstmt=null;try{conn=DataBaseConn.getConnection();pstmt=conn.prepareStatement("DELETEFROMcategoryWHEREid=?");pstmt.setInt(1,id);pstmt.executeUpdate();}finally{if(pstmt!=null){pstmt.close();}if(conn!=null){conn.close();}}}/***Thismethodtoupdateacategory*@paramcategoryCategory*@throwsException*/publicstaticvoidupdateCategory(Categorycategory)throwsException{Connectionconn=null;PreparedStatementpstmt=null;try{conn=DataBaseConn.getConnection();pstmt=conn.prepareStatement("UPDATEcategorySETParentId=?,Name=?,FullName=?WHEREid=?");pstmt.setInt(1,category.getParentId());pstmt.setString(2,category.getName());pstmt.setString(3,category.getFullName());pstmt.setInt(4,category.getId());pstmt.executeUpdate();}finally{if(pstmt!=null){pstmt.close();}if(conn!=null){conn.close();}}}/***ReturnthisParentId'sname*@paramparentIdint*@throwsException*@returnString*/publicstaticStringgetParentName(intparentId)throwsException{StringpName="";Connectionconn=null;PreparedStatementpstmt=null;ResultSetrs=null;/***IftheparentIdequalszerothenreturnroot*/if(parentId==0){returnpName="根分類";}try{conn=DataBaseConn.getConnection();pstmt=conn.prepareStatement("SELECTNameFROMcategoryWHEREid=?");pstmt.setInt(1,parentId);rs=pstmt.executeQuery();if(rs.next()){pName=rs.getString(1);}else{thrownewException("Notfoundthiscategory!");}}finally{if(rs!=null){rs.close();}if(pstmt!=null){pstmt.close();}if(conn!=null){conn.close();}}returnpName;}/***Returntheparentid'sfullname*@paramparentIdint*@throwsException*@returnString*/publicstaticStringgetParentFullName(intparentId)throwsException{StringpName="";Connectionconn=null;PreparedStatementpstmt=null;ResultSetrs=null;if(parentId==0){returnpName;}try{conn=DataBaseConn.getConnection();pstmt=conn.prepareStatement("SELECTFullNameFROMcategoryWHEREid=?");pstmt.setInt(1,parentId);rs=pstmt.executeQuery();if(rs.next()){pName=rs.getString(1)+"->";}else{thrownewException("Notfoundthiscategory!");}}finally{if(rs!=null){rs.close();}if(pstmt!=null){pstmt.close();}if(conn!=null){conn.close();}}returnpName;}/***Therecursionmethod*@paramcategoryIdint*@throwsException*/privatestaticvoidgetChildCategory(intcategoryId)throwsException{Collectionchildren=newArrayList();children=getNearestChildCategory(categoryId);AllChildren.addAll(children);Iteratorit=children.iterator();while(it.hasNext()){Categorycate=(Category)it.next();getChildCategory(cate.getId());}}publicstaticCollectiongetChildrenCategory(intid)throwsException{AllChildren=newArrayList();getChildCategory(id);returnAllChildren;}/***Returnthecategorynamebycategoryid*@paramcategoryIdint*@throwsException*@returnString*/publicstaticStringgetCategoryNameById(intcategoryId)throwsException{StringpName="";Connectionconn=null;PreparedStatementpstmt=null;ResultSetrs=null;if(categoryId==0){returnpName;}try{conn=DataBaseConn.getConnection();pstmt=conn.prepareStatement("SELECTNameF
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 智能餐飲培訓(xùn)課程設(shè)計(jì)
- 旅游專業(yè)托盤課程設(shè)計(jì)
- 2024-2030年卡車和公共汽車后視鏡行業(yè)市場(chǎng)現(xiàn)狀供需分析及重點(diǎn)企業(yè)投資評(píng)估規(guī)劃分析研究報(bào)告
- 2024-2030年北京養(yǎng)老機(jī)構(gòu)行業(yè)發(fā)展動(dòng)態(tài)及前景規(guī)劃研究報(bào)告
- 2024-2030年六氯丙酮搬遷改造項(xiàng)目可行性研究報(bào)告
- 2024-2030年全球機(jī)械密封市場(chǎng)發(fā)展前景與投資風(fēng)險(xiǎn)分析報(bào)告
- 2024-2030年全球及中國(guó)調(diào)酒用糖漿行業(yè)銷售情況及競(jìng)爭(zhēng)前景預(yù)測(cè)報(bào)告
- 2024-2030年全球及中國(guó)聚硅氧烷季銨鹽8行業(yè)產(chǎn)銷需求及投資潛力預(yù)測(cè)報(bào)告
- 2024-2030年全球及中國(guó)瓶裝礦泉水行業(yè)營(yíng)銷態(tài)勢(shì)及投資盈利預(yù)測(cè)報(bào)告
- 2024-2030年全球及中國(guó)涂料助焊劑行業(yè)前景動(dòng)態(tài)及投資趨勢(shì)預(yù)測(cè)報(bào)告
- 典型的化工操作過(guò)程安全技術(shù)
- 課堂教學(xué)問(wèn)卷調(diào)查(學(xué)生).
- 挖掘機(jī)液壓系統(tǒng)講解課件
- 管道安裝工程清單價(jià)格
- 四川省普教科研資助金課題檢測(cè)報(bào)告
- 古傳五禽戲內(nèi)功法詳解(圖)
- 粵西茂名許氏源流考
- 關(guān)于房屋裝飾裝修價(jià)值評(píng)估的探討
- 六十仙命配二十四山吉兇選擇一覽表
- 小型辦公系統(tǒng)(數(shù)據(jù)庫(kù)課程設(shè)計(jì))word格式
- 模擬通信系統(tǒng)(PM調(diào)制)Matlab仿真平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)
評(píng)論
0/150
提交評(píng)論