版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(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語言,它由以下三個(gè)部分組成:模型(model),視圖(view),控制器(Controller).表1.1定義了這些組件。組件描述模型(model)封裝數(shù)據(jù)對(duì)象。模型用來封裝和顯示數(shù)據(jù)對(duì)象。視圖(view)作為模型的顯示,它表示數(shù)據(jù)對(duì)象的當(dāng)前狀態(tài)控制器(Controller)定義對(duì)用戶的輸入執(zhí)行相應(yīng)操作的接口,它用來操作模型(model)和數(shù)據(jù)對(duì)象使用MVC的好處包括如下:可靠性:表示層和業(yè)務(wù)層別分離,這樣就允許你更改你的表示層代碼而不用重新編譯你的模型(model)和控制器(Controller)代碼高重用和可適應(yīng)性:MVC模式允許你使用各種不同樣式的視圖來訪問同一個(gè)服務(wù)器端的代碼。它包括任何WEB(HTTP)瀏覽器或則無線瀏覽器(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)頁一個(gè)網(wǎng)頁的制作出來的,而是通過文章發(fā)布系統(tǒng)動(dòng)態(tài)進(jìn)行添加和管理的。本課程設(shè)計(jì)就是實(shí)現(xiàn)通過Struts實(shí)現(xiàn)WEB文章管理系統(tǒng)。 本系統(tǒng)通過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本說明書的預(yù)期讀者為客戶、業(yè)務(wù)或需求分析人員、測(cè)試人員、用戶文檔編寫者、項(xiàng)目管理人員。1.2工程的名稱基于MVC的WEB文章系統(tǒng)
1.3定義,術(shù)語,縮寫詞和略語
Struts:是一個(gè)技術(shù)框架,由CraigR.McClanahan編寫,并且在2000年的時(shí)候捐獻(xiàn)給了ASF,目前,有很多組織和個(gè)人參與Struts框架的開發(fā),使得Struts保持高速成長(zhǎng),同時(shí),利用Struts開發(fā)的應(yīng)用越來越多,使其成為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)文章的添加、刪除、修改等功能。二模塊功能[功能名稱]:分類添加[功能說明]:添加一個(gè)新的分類。[數(shù)據(jù)結(jié)構(gòu)]: 分類名稱:字符串 父分類名:字符串 全名:字符串[功能名稱]:分類修改[功能說明]:修改所選擇的分類。[數(shù)據(jù)結(jié)構(gòu)]: 分類名稱:字符串 父分類名:字符串 全名:字符串[功能名稱]:分類刪除[功能說明]:刪除所選擇的分類。[數(shù)據(jù)結(jié)構(gòu)]: 分類名稱:字符串 父分類名:字符串 全名:字符串分類的管理模塊,對(duì)分類進(jìn)行添加、刪除、修改等等。所有添加的文章都要求有分類。此模塊采用遞歸算法,突破了二級(jí)分類的束縛,實(shí)現(xiàn)了無限級(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已購買數(shù)Int否Hits點(diǎn)擊數(shù)Int否Prise售價(jià)Int否Sales折扣Int否四流程分析五用戶接口1分類管理2分類列表頁面3文章顯示頁面六程序代碼分類管理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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 大學(xué)教師辭職申請(qǐng)書合集五篇
- 中國(guó)人壽實(shí)習(xí)報(bào)告五篇
- 高中生社會(huì)實(shí)踐報(bào)告集錦15篇
- 學(xué)生細(xì)節(jié)決定成敗演講稿匯編9篇
- 2023物業(yè)年度工作報(bào)告5篇
- 公司員工部門2022年度工作計(jì)劃例文
- 時(shí)間主題演講稿15篇
- 教科版小學(xué)四年級(jí)下冊(cè)科學(xué)全冊(cè)教案設(shè)計(jì)
- 住在茶園的詩句
- 入學(xué)報(bào)名住房合同(2篇)
- 山東省濱州市2023-2024學(xué)年高一上學(xué)期1月期末考試 政治 含答案
- 電力行業(yè)電力調(diào)度培訓(xùn)
- 【MOOC】氣排球-東北大學(xué) 中國(guó)大學(xué)慕課MOOC答案
- 全力以赴備戰(zhàn)期末-2024-2025學(xué)年上學(xué)期備戰(zhàn)期末考試主題班會(huì)課件
- 《慶澳門回歸盼祖國(guó)統(tǒng)一》主題班會(huì)教案
- 物流公司自然災(zāi)害、突發(fā)性事件應(yīng)急預(yù)案(2篇)
- 《視頻拍攝與制作:短視頻?商品視頻?直播視頻(第2版)》-課程標(biāo)準(zhǔn)
- 公司戰(zhàn)略與風(fēng)險(xiǎn)管理戰(zhàn)略實(shí)施
- 2024年-2025年《農(nóng)作物生產(chǎn)技術(shù)》綜合知識(shí)考試題庫及答案
- 洗衣房工作人員崗位職責(zé)培訓(xùn)
- 廣東省深圳市光明區(qū)2022-2023學(xué)年五年級(jí)上學(xué)期數(shù)學(xué)期末試卷(含答案)
評(píng)論
0/150
提交評(píng)論