基于MVC的WEB文章系统详细设计报告-分类模块_第1页
基于MVC的WEB文章系统详细设计报告-分类模块_第2页
基于MVC的WEB文章系统详细设计报告-分类模块_第3页
基于MVC的WEB文章系统详细设计报告-分类模块_第4页
基于MVC的WEB文章系统详细设计报告-分类模块_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于MVC的WEB文章系统详细设计报告——分类模块分类管理模块一引言MVC设计模式起源于Smalltalk语言,它由以下三个部分组成:模型(model),视图(view),控制器(Controller).表1.1定义了这些组件。组件描述模型(model)封装数据对象。模型用来封装和显示数据对象。视图(view)作为模型的显示,它表示数据对象的当前状态控制器(Controller)定义对用户的输入执行相应操作的接口,它用来操作模型(model)和数据对象使用MVC的好处包括如下:可靠性:表示层和业务层别分离,这样就允许你更改你的表示层代码而不用重新编译你的模型(model)和控制器(Controller)代码高重用和可适应性:MVC模式允许你使用各种不同样式的视图来访问同一个服务器端的代码。它包括任何WEB(HTTP)浏览器或则无线浏览器(WAP)。较低的生命周期成本:MVC使降低开发和维护用户接口的技术含量成为可能。快速的部署:开发时间会得到相当大的缩减,它使程序员(java开发人员)集中精力于业务逻辑,界面程序员(HTML和JSP开发人员)集中精力于表现形式上。可维护性:分离表示层和业务逻辑层也使得基于Struts的Web应用更易于维护和修改。 WEB文章系统是在网上发布文章的系统。互联网发展至今,网络上的各种文档资料数不胜数。这么多的文档资料当然不是一个网页一个网页的制作出来的,而是通过文章发布系统动态进行添加和管理的。本课程设计就是实现通过Struts实现WEB文章管理系统。 本系统通过Struts实现,实现了表现层、逻辑层和数据三层模式,做到了表示层和逻辑处理层的代码分离。并充分利用Struts的特性,实现了部分国际化,目前包括简体中午、繁体中文和英文三个版本。1.1编写目的

1.1.1为开发人员、维护人员、客户之间提供共同的协议而创立基础,对WEB文章系统软件功能的实现作使命描述。

1.1.2本说明书的预期读者为客户、业务或需求分析人员、测试人员、用户文档编写者、项目管理人员。1.2工程的名称基于MVC的WEB文章系统

1.3定义,术语,缩写词和略语

Struts:是一个技术框架,由CraigR.McClanahan编写,并且在2000年的时候捐献给了ASF,目前,有很多组织和个人参与Struts框架的开发,使得Struts保持高速成长,同时,利用Struts开发的应用越来越多,使其成为web应用MVC模式中VC部分事实上的标准。模块的独立性:是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其他的模块的接口是简单的。WEB文章管理系统:以B/S模式对文章添加管理的网络应用系统。可以实现文章的添加、删除、修改等功能。二模块功能[功能名称]:分类添加[功能说明]:添加一个新的分类。[数据结构]: 分类名称:字符串 父分类名:字符串 全名:字符串[功能名称]:分类修改[功能说明]:修改所选择的分类。[数据结构]: 分类名称:字符串 父分类名:字符串 全名:字符串[功能名称]:分类删除[功能说明]:删除所选择的分类。[数据结构]: 分类名称:字符串 父分类名:字符串 全名:字符串分类的管理模块,对分类进行添加、删除、修改等等。所有添加的文章都要求有分类。此模块采用递归算法,突破了二级分类的束缚,实现了无限级分类。并实现了分类的动态联动,即选择父分类,则动态显示此父分类下的所有子分类。三数据描述书籍分类表(category)字段名称描述数据类型字段长度可否为空IdId号intauto_increment否ParentId父节点Int否Name名称varchar50否FullNameFullName全称varchar250否书籍表(Books)字段名称描述数据类型字段长度可否为空IdId号intauto_increment否Category书籍分类Int否Title书名varchar50否ISBNISBN号Int否Author作者varchar20否PubTime出版日期datetime否Publishing出版社varchar30否Desc简介varchar300否Count已购买数Int否Hits点击数Int否Prise售价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等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论