




已阅读5页,还剩61页未读, 继续免费阅读
基于mvc模式的新闻发布系统的设计与实现 电子商务论文.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
成都理工大学毕业设计(论文)基于MVC模式的新闻发布系统的设计与实现摘要新闻发布系统是公司内容管理系统的主要应用之一,是公司信息化建设和实现电子商务的重要途径。它的基本思想是分离新闻信息的内容和表现形式,以期提高新闻发布效率。本设计采用基于UML用例驱动对象建模的ICONIX项目管理方法,应用MVC三层设计模式,实现一个可以完成新闻栏目和新闻信息的添加、修改、删除以及新闻查看功能的新闻发布系统。关键字ICONIX;MVC;SERVLET;JAVABEAN;新闻发布电子商务论文IIDESIGNANDIMPLEMENTATIONOFTHENEWSPUBLISHINGSYSTEMBASEDONMVCMODELABSTRACTTHENEWSPUBLISHINGSYSTEMISTHEMAINAPPLICATIONOFCONTENTMANAGEMENTSYSTEMINACOMPANY,ALSOITISANIMPORTANTAPPROACHOFTHECOMPANIESINFORMATIONCONSTRUCTIONANDTHEREALIZATIONOFECOMMERCETHESEPARATIONOFTHECONTENTSANDVIEWSOFINFORMATIONINTHENEWSISITISTHEBASICIDEA,SOASTOADVANCETHEEFFICIENCYOFTHENEWSTHROUGHAPPLYINGTHEPROJECTMANAGEMENTMETHODSOFICONIX,WHICHISBASEDONUSECASEDRIVENOBJECTMODELINGWITHUML,ANDMVCDESIGNPATTERN,THISPAPERIMPLEMENTANEWSPUBLISHINGSYSTEMWITHFUNCTIONSOFADDING,EDITING,DELETINGTHECATEGORYANDNEWS,ANDBROWSINGNEWSMESSAGEKEYWORDSICONIXMVCSERVLETJAVABEANNEWSPUBLISHING电子商务论文III目录第1章前言1第2章系统概述221项目管理方法2211项目管理方法比较2212项目管理方法选择222设计模式3222MVC模式基本原理4223MVCMODEL15224MVCMODEL2523小结6第3章需求分析731需求描述732角色识别833用例识别834用例文档835用例驱动分析1036小结12第4章系统设计1341系统总体设计13411系统构架13412发现系统类1442视图层设计15421前台设计15422后台设计1643模型层设计18431前台显示和用户登录18电子商务论文IV432新闻管理19433栏目管理2044控制层设计21441用户登录21442新闻管理21443栏目管理2245数据库设计23451数据库需求分析23452数据库概念设计23453数据库逻辑设计24454数据库表设计2446数据库连接池设计25461传统的数据库连接25462数据库连接池的必要性25463数据库连接池工作原理26464具体设计2647小结27第5章系统实现2851视图层实现28511公共页面28512前台实现29513后台实现3052模型层实现32521新闻显示32522新闻管理32523栏目管理3253控制层实现32531用户登录33532新闻管理33电子商务论文V533栏目管理3454数据库实现34541数据库表实现34542数据库表关系3555数据库连接池实现3656小结36第6章系统运行测试3761系统测试环境37611系统测试硬件环境37612系统测试软件环境37613TOMCAT的配置3762系统测试37第7章系统评价与改进3971系统评价3972系统改进39结论40致谢41参考文献42附件43电子商务论文1第1章前言伴随着网络的出现,网页逐渐融入人们的生活。快速及时的新闻浏览,五彩缤纷的网上信息,使网络与人们的生活息息相关,于是世界上出现了第三媒体INTERNET。它打破了地域限制,真正使信息得以共享,改变了人们的工作和生活方式。人们对信息的需求有了更新,更高的要求,而网页由于本身所具有的信息量大,传递快速,没有时空限制等特点恰好满足这种要求。也正是由于网络实现网站的数据信息能够进行实时交互,保证网站数据的实时性。随着INTERNET信息技术的高速发展,越来越多的企业想将自己企业的信息通过网络与全世界分享并最终实现电子商务,所以它们已经建立或计划建立自己的网站。但是,如果为了建立和维护自己的网站而聘请专职的网络技术人员,其成本对于一个中小型企业来说实在是太高了。对于上面这类企业来说,他们最需要的就是一个现成的可以自动发布信息的新闻发布系统,这样只要会打字,会上网就能利用新闻发布系统快速简洁地发布企业信息。然而传统的信息发布方式已经不适应这个快速变化的信息时代,需要一个更高效,更简洁的方式进行信息发布。内容管理系统正是基于这样一个目的而诞生的,它是企业信息化建设和电子政务的新宠。它的基本思想是分离信息内容和表现形式,内容存储在数据库或独立的文件中,而表现形式存储在模版里。当用户请求页面时,各部分联合生成一个标准的HTML页面;当信息修改时,用户只需在一个可视化的界面对信息内容进行修改。大大缩短了信息的更新时间,提高了效率,并且简化了操作。本设计便是基于内容管理思想的一个新闻发布系统,以下各章从系统概述、需求分析、系统设计、系统实现、系统运行测试和系统评价与改进依次展现系统开发过程。电子商务论文2第2章系统概述本章主要介绍在系统开发过程中所采用的软件项目管理方法和系统设计模式。21项目管理方法211项目管理方法比较目前,面向对象软件开发的项目管理方法主要有RUP、XP和ICONIX。RUP(RATIONALUNIFIEDPROCESS)统一软件过程,是统一软件开发过程,强调文档、设计和代码的质量,采用动态适应变化的渐进式迭代周期,依靠需求和测试驱动,并积极鼓励客户参与的开发方法1。RUP是一个基于UML和构件式构架的迭代递增型开发过程,更适用于大、中型软件开发项目。XP极限编程(EXTREMEPROGRAMMING,XP)是一门针对业务和软件开发的规则,它将编码和设计活动融为一体,弱化了构架的概念1。要求先开发出系统中最重要的特性,迅速向客户提供所需功能,然后随着代码的演进通过重构来满足新的要求,从而使整个项目的风险降到最小。XP是一种渐进式的原型化开发方法,反映的是以编程为中心,节省资源的观念。它具有沟通高效,设计简单,反馈迅速等特点,是一种针对某些特定环境(需求变化快的小型开发团队)的具体过程实施模型和方法论。ICONIX的规模大概在重量级的RATIONALUNIFIEDPROCESS(RUP)和轻量级的极限编程(XP)之间2。和RUP一样,ICONIX过程也是用例驱动的,但不需要RUP使纪录延续到表中带来的大量开销;和XP一样,它相对较小,比较紧凑,但不像XP那样摒弃了分析和设计过程。因此,有助于使用统一建模语言(UML),同时对需求进行跟踪。该过程遵循了IVARJACOBSON的“用例驱动”的思想,能够获得有形、具体、易于理解的用例,可以使用这些用例来驱动开发工作。该过程的3个基本原则是从用户需求向内进行;从问题域的关键抽象向外进行;从高级模型向下挖掘到详细设计2。212项目管理方法选择本系统选择的项目管理方法是ICONIX,也许它并不是用于本系统开发最好的项目管理方法,当然它也有很多缺点。本系统选择它作为系统的软件项目管理电子商务论文3方法,第一是因为系统本身较简单,采用ICONIX足以满足系统需求,并且由于时间限制,本人没有太多精力去学习更好的项目管理方法;第二是因为和别的软件方法不同的是,ICONIX更强调需求到设计之前的自然、有章可循的,同时也适合迭代的过渡,并且按照它自己的软件方法思想,它对UML符号集在可扩充的前提下作了一定的取舍。本系统选择ICONIX项目管理方法,在系统设计和实现过程中,根据系统需要,对其进行了适当的取舍。图21是ICONIX项目管理方法过程的总图。图21ICONIX总图222设计模式随着WEB技术的发展,WEB内容从一些静态页面发展到内容丰富的动态页面。目前,用于生成动态网页较为流行的技术有MICROSOFT的ASP、TEX的PHP和SUN的JSP。ASP只能工作在微软的IIS(INTERNETINFORMATIONSERVER)和PWS(PERSONALWEBSERVER)上及PHP模式,一些天生缺陷使得它们的使用受到了一定的制约。而JSP是一种完全与平台无关的开发新技术,它集极高的运行效率,较短的开发周期,超强的扩展能力,完全开放的技术标准,自由的开发方式等众电子商务论文4多完美特性于一身。JSPJAVABEANSERVLETJDBCDBMS是一套能够实现动态网站的开发和维护的技术。DBMS数据库用于数据存储,JDBC用于连接数据库并对数据库进行存储,SERVLET用于处理过程控制,JAVABEAN用于封装业务逻辑,JSP用于页面显示部分。而MVC正是这种设计模式代表。222MVC模式基本原理MVCMODELVIEWCONTROLLER,即把一个应用的输入、处理、输出流程按照MODEL,VIEW,CONTROLLER的方式进行分离,这样一个应用被分成三个层模型层、视图层、控制层,其三层之间的关系和功能如图22“MVC组件类型关系和功能图”。图22MVC组件类型关系和功能图3MVC设计模式的典型流程4为首先CONTROLLER接收用户的请求,并决定应该调用哪个MODEL来进行处理,然后MODEL用业务逻辑来处理用户的请求并返回数据,最后CONTROLLER用相应的VIEW格式化MODEL返回的数据,并通过表示层呈现给用户。控制层CONTROLLER可以理解为从用户接收请求,将模型与视图匹配在一起,共同完成用户的请求。划分控制层的作用也很明显,它清楚地告诉我们,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层并不做任何的数据处理。例如,用户点击一个链接,控制层接受请求后,并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。因此,一个模型可能对应多个视图,一个视图可能电子商务论文5对应多个模型。模型层MODEL就是业务流程/状态的处理以及业务规则的制定。业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计可以说是MVC最主要的核心,必须能够满足大多数客户的需求,包括保证应用程序各组件的事务整合、维护并快速获取应用数据,支持事务工作流的协调以及在已有应用程序中集成新的应用组件等。MVC并没有提供模型的设计方法,而只告诉我们应该组织管理这些模型,以便于模型的重构和提高重用性。视图层VIEW代表用户交互界面,对于WEB应用来说,可以概括为HTML界面,但有可能为XHTML,XML和APPLET。随着应用的复杂性和规模性,界面的处理也变得具有挑战性。一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。业务流程的处理交予模型MODEL处理。223MVCMODEL1在MVC模式的MODEL1体系中,JSP页面独立响应请求并将出理结果返回客户,所有的数据存取都是由JAVABEAN来完成。MODEL1体系十分适合简单应用需要,却不能满足复杂的大型应用程序的实现。MVCMODEL1的体系结构如图23所示。JDBC图23MVCMODEL1体系结构图5224MVCMODEL2MVC模式的MODEL2体系结构是一种把JSP与SERVLET联合起来实现动态内容服务的方法。它吸取了两种技术的优点,用JSP生成表达层的内容,让SERVLET完成深层次的处理任务。这是一种有代表性的方法,它清晰地分离了表达和内容,明确了角色的定义及开发者与网页设计者的分工。本系统的设计模式选择的便是电子商务论文6MODEL2。MVCMODEL2的体系结构如图24所示。JDBC图24MVCMODEL2体系结构图523小结本章首先介绍了目前面向对象的软件开发中所常用的几种项目管理方法,并最终根据系统需要选择了ICONIX作为系统项目管理方法。然后对MVC设计模式基本原理进行了详细阐述,并介绍了MVC的两种不同的模式MODEL1和MODEL2,并确定本系统的设计模式便是MVCMODEL2。电子商务论文7第3章需求分析需求分析在软件开发过程中,具有举足轻重的地位,它具有决策性,方向性,策略性的作用。需求分析的任务就是要解决“做什么”的问题,就是要全面地理解用户的各项需求,并准确地表达所接受的用户需求。31需求描述新闻发布系统功能需求主要包括前台显示功能和后台管理功能。前台显示功能主要针对一般用户的,当一般用户在浏览新闻系统时,系统应该对新闻栏目和新闻条目的显示。另外,前台显示功能还应包括一个提供给系统管理员登录后台的登录入口。具体需求见表31系统前台显示需求表。表31系统前台显示需求表用户要求实现功能一般用户浏览新闻栏目一般用户浏览新闻系统管理员登录后台系统后台管理功能是针对系统管理员的,当系统管理员登录系统后台时,系统后台提供给系统管理员的功能应该有对新闻栏目的浏览、添加、修改和删除;对新闻条目的浏览、添加、修改和删除。具体需求见表32系统后台管理需求表。表32系统后台管理需求表用户要求实现功能系统管理员浏览新闻栏目系统管理员添加新闻栏目系统管理员修改新闻栏目系统管理员删除新闻栏目系统管理员浏览新闻系统管理员修改新闻系统管理员添加新闻系统管理员删除新闻电子商务论文832角色识别角色识别的任务是找到所有可能与系统发生交互行为的外部实体、对象和系统。他们的行为不受系统控制,但是可以提供输入信息。从系统描述可知,在前台显示模块中,系统主要对一般用户的浏览需求和管理员的登录需求做出响应;而在后台管理系统中,系统管理员可以对新闻栏目及新闻进行浏览、添加、修改和删除。所以本系统应包括两个角色一般用户和系统管理员用户。而事实上这些人对于系统来说都是用户,只是当用户登录到后台便成了管理员而已。因此,系统角色可以统一为用户。33用例识别在UML文档中,用例(即USECASE)的定义是在不展现一个系统或子系统内部结构的情况下,对系统或子系统的某个连贯的功能单元的定义和描述6。用例识别的目标是在需求描述和系统角色识别的基础上,识别出角色相映的用例,从而可以得出系统的用例模型,如图31是“系统用例模型图”。图31系统用例模型图34用例文档用例文档主要为了描述出用例的详细业务流程,本系统主要包括以下用例文档1前台显示用例文档电子商务论文9基本流程当用户在前台浏览新闻系统时,系统默认显示给用户的是所有栏目和所有新闻条目(每页显示8条新闻,一页显示不完可以分页显示)。当用户点击某个栏目时,系统显示相应的新闻条目。分支流程如果某个栏目下没有任何新闻,系统将显示一条信息,以指出该栏目没有新闻可以显示。(2)登录入口用例文档基本流程用户在前台显示页面提供的登录后台系统的登录入口中输入用户信息,系统根据用户的登录信息进行检验,然后进入系统后台管理系统。分支流程如果用户取消登录,则系统将信息重置,用户回到前台显示页面。如果用户输入的信息不正确,系统将控制权交给“登录错误”页面,用户可以在此重新输入用户名和密码进行登录。(3)系统后台管理用例文档基本流程用户在登录系统后台后,可以对新闻和栏目进行操作,根据用户的操作选择,进入扩展用例。(4)新闻管理用例文档基本流程用户进入系统后便可浏览到新闻条目,在浏览过程中,用户可以修改和删除新闻。用户在进行相应的操作后,系统存储新的信息,系统将控制权交给后台管理用例。分支流程如果用户放弃对新闻的相应操作,则系统直接将控制权交给后台管理用例。如果用户选择添加新闻,系统将控制权交给添加新闻用例。(5)添加新闻用例文档基本流程用户填写新闻相关信息,并确定添加新闻时,系统将存储此新闻,并将控制权交给新闻管理用例。分支流程如果用户放弃新闻添加,系统将直接将控制权交回给新闻管理用例。(6)栏目管理用例文档基本流程用户在后台管理中选择栏目管理时,用户将浏览到系统已有栏目,并可对其进行修改删除操作,用户在进行相应操作后,系统会存储新的信息,控电子商务论文10制权将回到栏目管理用例。分支流程如果用户放弃相应操作,控制权将直接回到栏目管理用例。如果用户选择添加栏目,控制权将交给添加栏目用例。(7)添加栏目用例文档基本流程用户填写栏目相关信息,并确定添加栏目,系统将存储此栏目,并将控制权交给栏目管理用例。分支流程如果用户放弃栏目添加,控制权将直接交回到栏目管理用例。35用例驱动分析通过以上对系统需求的分析已经定义了系统的角色和系统用例。系统根据用例模型可以对用例进行细化,从而展现整个用例的活动顺序。序列图则反映了用例各个类之间的具体调用过程7,如图便是根据系统的角色分析和系统用例模型而得出的相应活动的顺序图如图32至图37。图32前台活动顺序图电子商务论文11图33用户登录活动顺序图图34后台新闻管理活动顺序图图35添加新闻活动顺序图电子商务论文12图36栏目管理活动顺序图顶层包用户添加栏目1栏目管理栏目管理2显示栏目3添加栏目4添加成功添加控制图37添加栏目活动顺序图36小结本章从用户的角度,分析了系统的需求用例,画出了系统用例模型图,并得出了相应的用例文档;做出了用例驱动分析,并得出了相应的顺序图。本章的工作为系统的设计打下基础。电子商务论文13第4章系统设计根据上一章的需求用例分析,本章从先总体构架的角度对系统进行总体设计,然后根据MVC三层模式对系统进行详细设计,最后对系统数据库和数据库连接池进行了设计。41系统总体设计411系统构架系统基于MVCMODEL2设计模式,设计出本系统自己的设计模式,在MVCMODEL2基础上加入数据库连接池模块层对数据库操作进行封装。具体模式图如图41。JDBC图41系统设计模式图对于MVC设计模式,在本系统中具体实现方式是MODEL由JAVABEAN完成,VIEW由JSP完成,CONTROLLER由SERVLET完成,再加上数据库连接池专门负责数据库连接和管理。本系统具体构架如图42。图42系统构架图电子商务论文14412发现系统类发现系统类是域建模的工作,其主要目的是根据系统需求用例及描述,找到代表与本新闻系统将要解决的问题有关的事务和概念的“对象”,即类1。在本系统中,根据第3章中对系统需求用例的分析,可以总结出如下的需求集(1)系统应该分为前台和后台;(2)系统前台应该可以显示新闻栏目和新闻以及用于管理员登录系统后台的登录界面;(3)一般用户应该可以在前台自由浏览新闻,包括选择性地浏览新闻即先选择新闻栏目再浏览新闻栏目下的新闻条目;用户在浏览新闻时,系统应该可以将显示给用户一个包含新闻具体内容的HTML文件;(4)系统管理员应该可以登录到系统后台;(5)系统管理员应该可以对新闻栏目和新闻进行查看、修改、删除和添加操作。系统在添加新闻时,应该可以将添加的新闻保存为一个HTML文件。由以上需求集进一步分析可知(1)词“系统”太模糊,不能成为一个对象的名称;同样,“前台”和“后台”为系统的两个不同的区域,亦不能成为对象名称;(2)“新闻栏目”和“新闻”为系统的两个主要内容,所以应该分别作为一个类,而新闻栏目和新闻的显示需要管理类进行管理,系统管理员要对栏目和新闻进行查看、添加、修改和删除,也需要相应的管理类进行管理,所以,系统对于新闻栏目和新闻分别需要“栏目管理类”和“新闻管理类”;(3)要将添加的新闻保存为一个HTML文件,需要一个从表单中收集信息并将其转换为一个HTML文件的类;(4)系统要保存信息,必须用到数据库,所以需要一个数据库连接的类;(5)要将系统的各个功能执行成功,少不了相应的控制类。因此,识别出系统主要的类新闻类(NEWS)和新闻管理类(NEWSMGR),栏目类(CATEGORY)和栏目管理类(CATEGORYMGR),数据库连接池的连接对象类(CONNECTIONOBJECT)和连接池管理类(CONNECTIONPOOL)以及各个SERVLET类。电子商务论文1542视图层设计421前台设计当一个用户浏览新闻系统时,首先进入系统前台界面。如果把一个系统比作一个人,那么前台界面则是这个人的脸,因此系统的前台界面的设计是比较重要的,并且,前台界面应该被设计得比较简洁,方便。前台界面设计如图43所示。图43前台界面设计图首先,在本系统的前台界面的顶部用户可以看到一个专为系统管理员用户提供的登录入口,为系统管理员提供了方便。而对于一般用户来说,他们也不会感觉这有何不妥,因为此登录界面比较简洁,并不会影响用户正常地阅读新闻。其次,在登录界面的下方是新闻栏目的显示,显示系统新闻栏目数据库中已有的新闻栏目,一目了然,用户可以方便地找到自己喜欢和关心的新闻所在的栏目。再次,在新闻栏目的下方则是新闻条目的显示,默认的新闻条目的显示方式是以表格的形式将系统新闻数据表中的新闻按发布时间进行列表(发布较早的新闻被放在列表的后面,而发布较迟的新闻被放在列表的前面,体现了新闻的“新”,即“时效性”)。新闻列表中仅显示新闻的标题,发布时间和新闻作者,如果想浏览整篇新闻,用户可以点击新闻标题(超链接),这时系统会将用户引导向一个电子商务论文16包含新闻具体内容的HTML文件。然后,用户可以对自己比较关心和感兴趣的新闻进行有选择性地浏览,这时新闻栏目便起作用了。当用户点击新闻所在的栏目时,系统在新闻列表中只显示本栏目的新闻条目。用户可以在此浏览自己关心和感兴趣的新闻。422后台设计4221后台主页面设计当用户登录到系统后台时,他便成为系统管理员,可以执行对新闻和栏目的查看、修改、删除和添加。此界面主要是面向管理员的,界面要设计得简洁方便,使得系统管理员在管理系统时容易操作。后台界面设计如图44所示。图44L管系统界K设计图当管理员用户登录到系统后台时,呈现到他眼前的是系统后台管理的主页面首先,系统后台主页面左上角是欢迎词(WELCOME管理员名),对于管理员,他可以感觉到系统的人性化;对于系统本身,系统可以识别此时登录的是哪个管理员,可以分配管理员的权限。其次,欢迎词下方是系统管理的功能选择,一目了然,管理员可以在此选择要操作的模块进入,然后执行相应的操作。电子商务论文17再次,再往下就是系统新闻列表,与前台新闻显示类似,只是多了对新闻的操作(修改和删除)。管理员可以在此对系统已有的新闻进行修改和删除操作。4222添加新闻设计如果系统管理员在系统后台主页面中选择“添加新闻”,管理员会进入下图这样一个页面进行新闻的添加,添加完新闻标题和新闻正文内容后,还必须选择所添加新闻所属的新闻栏目。确认所有内容均已填好,点击“发表”按钮,新闻发布工作完成,如果点击“清除”按钮,则系统清除管理员刚才的所有输入,让管理员重新填写新闻的各项内容。管理员可以在系统后台主页面中看到刚刚发表的新闻,可以对其进行相关操作,如图45。图45发布新闻页面设计图4223栏目管理设计如果系统管理员在系统后台主页面中选择“栏目管理”,系统将链接到新闻栏目管理页面。栏目管理页面上有一些链接按钮,可以让管理员链接到其他页面。链接按钮下面是系统已有新闻栏目的列表,在此,管理员可以对新闻发布系统的栏目进行操作(编辑和删除栏目)。如果管理员想要添加新闻栏目,只需点击“添加栏目”,就可以被链接到添加新闻栏目页面(因为此页面比较简单,所以并未给出具体设计图),添加栏目完成后,管理员可以在栏目管理主页面的栏目列表中找到新添加的栏目,并对其进行相关操作,如图46。电子商务论文18图46栏目管理页面设计图43模型层设计本系统模型层由JAVABEAN完成,模型层设计主要设计出完成各个功能模块中模型层的JAVABEAN类。模型层的类主要有新闻类NEWS和新闻管理类NEWSMGR以及栏目类CATEGORY和栏目管理类CATEGORYMGR。431前台显示和用户登录在前台显示和用户登录模块中,充当模型层的是NEWS和NEWSMGR根据系统分析中的系统前台需求用例分析和上述的前台界面功能描述,对系统的前台的每一个流程、每一个模块进行详细功能设计。其相应的功能模型如下图47。图47系统前台显示和用户登录静态模型图电子商务论文19根据上面的系统前台模型,我们可以来说明各个类的责任和功能。表41前台类责任表名称类型属性责任(或操作)INDEXPAGE边界无显示系统前台主页面,并提供管理员登录NEWS实体新闻条目的属性新闻条目的抽象NEWSMGR控制无根据新闻ID得到新闻对象,获得所有新闻和根据栏目ID得到该栏目的所有新闻LOGINFORM边界无提供管理员登录,并负责客户端的登录完整性检验MAINPAGE边界无系统后台管理主页面432新闻管理管理员在系统后台主界面中可以对已有新闻进行管理(修改、删除和添加),新闻管理模块中充当模型层的仍然是NEWS和NEWSMGR。其静态模型如图48。图48新闻管理静态模型图根据上面的新闻管理模型,我们可以对各个类的责任和功能进行说明。表42新闻管理类责任表名称类型属性责任(或操作)MAINPAGE边界无显示系统后台主页面,系统管理员可以在此对系统进行操作电子商务论文20表42新闻管理类责任表(续)NEWSMGR控制无对新闻条目进行操作,修改和删除NEWS实体新闻属性对新闻实体的抽象ADDNEWSPAGE边界无添加新闻界面,以FORM形式收集信息然后提交给控制器ADDNEWSSERVLET控制无在控制层设计EDITNEWSSERVLET控制无在控制层设计DELETENEWSSERVLET控制无在控制层设计433栏目管理栏目管理中可以对已有栏目的编辑、删除以及添加新栏目,栏目管理静态模型如图49。图49栏目管理静态模型图根据上面的栏目管理静态模型设计,我们可以对各个类的责任和功能进行说明。表43栏目管理类责任表名称类型属性责任(或操作)CLASSMANAGEPAGE边界无显示系统既有栏目,管理员可以在此对栏目进行修改和删除操作ADDCLASSPAGE边界无添加栏目,提交给添加栏目控制器CATEGORY实体ID和NAME新闻栏目的抽象CATEGORYMGR控制无实现对新闻栏目的操作电子商务论文21表43栏目管理类责任表(续)EDITCATEGORYSERVLET控制无在控制层中设计DELETECATEGORYSERVET控制无在控制层中设计ADDCATEGORYSERVLET控制无在控制层中设计44控制层设计441用户登录当用户通过系统前台提供的登录入口登录后台系统时,系统将用户的登录信息提交给登录控制层处理。所以登录控制器必须对用户登录信息进行识别,判断其是否有权限登录到后台系统。用户登录控制器由LOGINSERVLET完成,实现登录控制的静态类图如图410。图410登录控制静态模型图根据图410登录控制静态模型设计,对各个类的责任和功能进行说明。表44用户等录控制类责任表名称类型属性责任(或操作)LOGINSERVLET控制无控制用户登录442新闻管理新闻管理中主要涉及到新闻信息的添加、删除和修改,所以其控制层由ADDNEWSSERVLET、DELETESERVLET和EDITSERVLET完成。新闻管理静态类图如图411。电子商务论文22图411新闻管理静态模型图根据图411新闻管理静态模型设计,对各个类的责任和功能进行说明。表45新闻管理控制层静态类责任表名称类型属性责任(或操作)EDITNEWSSERVLET控制无对已有新闻编辑的控制DELETENEWSSERVLET控制无对删除已有新闻的控制ADDNEWSSERVLET控制无对添加新闻的控制443栏目管理栏目管理模块主要对新闻栏目进行修改、删除和添加,此功能模块控制层由EDITCATEGORYSERVLET、DELETECATEGORYSERVLET和ADDCATEGORYSERVLET完成。栏目管理静态类图设计如图412。图412栏目管理静态模型图电子商务论文23根据图412栏目管理静态模型设计,对各个类的责任和功能进行说明。表46栏目管理控制层静态类责任表名称类型属性责任(或操作)EDITCATEGORYSERVLET控制无对新闻栏目编辑的控制DELETECATEGORYSERVLET控制无对删除新闻栏目的控制ADDCATEGORYSERVLET控制无对添加新闻栏目的控制45数据库设计451数据库需求分析由于本系统面向的对象有两个一般用户和系统管理员。所以,数据库需求分析中就要考虑两方面因素。对于一般用户来说,他们所关心的是新闻的浏览。通过系统功能分析,针对一般新闻用户的需求,总结出如下需求信息(1)每个新闻对应一个HTML文件;(2)每个新闻只能对应一个新闻栏目;(3)每个栏目下可以有多个新闻。(4)每个新闻除了包含新闻的基本信息之外,还得包含新闻所对应的HTML路径信息。对于系统管理员来说,他们所关心的是如何对新闻栏目和新闻的添加、修改和删除。通过分析,针对系统管理员,总结出如下需求信息(1)管理员可以对新闻栏目进行增、删、改;(2)管理员可以对新闻条目进行增、删、改。452数据库概念设计根据上面的数据库需求分析,就可以构造出各种实体,以及并根据它们的关系绘制出实体间的ER图8,为以后的逻辑设计打下基础。如图413为本新闻发布系统实体间的ER图。电子商务论文24图413实体之间关系的ER图8453数据库逻辑设计根据数据库需求分析和数据库概念设计,设计如下所示的数据项和数据结构管理员表(用户名,密码),用户名为主码;栏目表(栏目编号,栏目名称),栏目编号为主码;新闻表(新闻编号,新闻标题,新闻内容,管理员名,所属栏目,发布时间),新闻编号为主码,管理员名和所属栏目为外码;454数据库表设计数据库逻辑设计完毕后,现在可以将上面的数据库概念结构转化为某种数据库系统所支持的实际数据库模型。本系统使用SQLSERVER2000数据库。新闻发布系统的数据库中各表的设计结果如下面几个表所示。表47管理员MASTER表序号字段名字段含义类型宽度是否非空备注1USERNAME管理员用户名CHAR12YKEY2PASSWORD管理员密码CHAR12Y无电子商务论文25表48新闻NEWS表序号字段名字段含义类型宽度是否非空备注1NEWSID新闻编号INT4YKEY2TITLE新闻标题CHAR50N无3CONTENT新闻内容CHAR5000N无4USERNAME新闻作者CHAR12Y外码5COMPOSE_DATE新闻发布时间DATETIME8Y无6CATEGORYID新闻栏目编号INT4Y外码表49栏目CATEGORY表序号字段名字段含义类型宽度是否非空备注1CATEGORYID新闻栏目编号INT4YKEY2CATEGORYNAME新闻栏目名称CHAR20Y无46数据库连接池设计461传统的数据库连接传统的数据库连接模式基本上是按以下步骤进行在主程序(如SERVLET、BEANS)中建立数据库连接;进行SQL操作,取出数据;断开数据库连接9。462数据库连接池的必要性传统的数据库连接模式开发,存在很多问题。首先,要为每次WEB请求(例如客户浏览一件商品信息)建立一次数据库连接。当有多个用户连接系统的时候,在同一时间有可能会不止一个用户需要数据库连接,在这种情况下,系统开销也是相当大的。连接数据库不仅要开销一定的通讯和内存资源,还必须完成用户验证、安全上下文配置这类任务;同时应用程序还要管理每一个连接,确保这些连接在被使用完后能被正确关闭。这些操作往往成为最耗时的操作,很多时候,一个网站的速度瓶颈可能就在于此,因而对数据库的连接的管理显得特别重要。本系统是一个新闻发布和管理的系统,新闻系统是面向广大阅读新闻的用户的,用户需要阅读新闻时,系统需要从新闻数据库中调出用户需要的新闻条目。如果采用传统的数据库链接模式,那么对于每一个阅读新闻的用户,当他读取新闻时,系统都要为他建立一次数据库连接,而当他退出新闻阅读时,系统释放数据库链接,那么,系统的数据库连接是非常频繁的。这样也会产生上面提到的种电子商务论文26种问题,但是,如果采用数据库链接池就方便得多,本系统采用的便是数据库链接池模式对数据库进行连接。463数据库连接池工作原理数据库连接池实际上是在一个容器对象中建立一定数目的数据库连接对象。当需要使用数据库连接的时候,直接从连接池中取出空闲对象供用户使用。当用户使用完后再把连接对象放回连接池中,以节省重新建立连接对象所花费的时间。工作原理如图414所示。连接池取一个连接放回连接SERVLET、JAVABEANSQL操作初始化数据库连接池数据库连接池连接1连接2连接N空闲连接取出连接Y池的上限N等待重试Y加入新连接到池中N是否使用最大次数从池中删除该连接Y使用次数加1连接状态设为忙N使用连接使用完后放回池中图414连接池工作原理图10当连接池工作时,首先,在连接池中应当初始化内含一定数量的连接对象;在使用过程中,如果池中的连接对象不够,可根据需要逐渐加入新的连接对象,但池中的连接对象也不能是无限的,当达到最大连接对象数量时,便不能再往池中添加新的连接对象,如果此时连接对象数量仍然不够,就只能等待别的连接对象释放后再使用,即定义连接池中连接对象的上下界和连接超时时间。定义上下界可根据客户端的情况动态地使用资源,以提高系统的效率。另外,同一个连接对象如果被使用的次数太多,可能会导致该连接对象的不稳定。所以需要设定一个连接对象可使用的最大次数。当使用次数达到最大次数后就将该连接对象关闭并从池中删除。464具体设计电子商务论文27根据连接池的工作原理,本文设计了一个的连接池组件。该连接池组件由两个JAVA类CONNECTIONOBJECT和CONNECTIONPOOL和一个数据库连接配置文件(DBCONFIGTXT)构成。其中CONNECTIONOBJECT称为连接对象类,用来实现对一个连接对象状态的管理,并为连接池管理类提供服务;CONNECTIONPOOL称为连接池管理类,用来实现对连接池的管理和调度;DBCONFIGTXT称为数据库连接配置文件,存放数据库连接所需要的配置信息,供连接池工作时使用。连接池内部联系类图如图415所示。图415连接池内部主件联系图47小结本章首先进行了系统总体设计,接着按照MVC设计模式的三层结构根据系统需求用例对新闻发布系统功能进行设计,最后设计出系统的数据库并对数据库连接进行了相应的设计。通过本章,系统设计出了用来完成系统用例的业务功能模型以及完成各个用例的类。电子商务论文28第5章系统实现根据上一章的设计思路设计用来完成系统用例的业务功能,整个系统按照MVC模式的三个部分以及数据库连接池进行编码实现,分为视图层、控制层、模型层和数据库连接池。由于系统实现的代码量较大限于篇幅,文中仅显示部分代码,具体实现代码参见附件。51视图层实现在系统其它视图层部分实现之前,先对那些常用的公共页面模块部分实现。511公共页面INCLUDEJSP是一个包含页面,它包含了一些其它页面可能经常用到的JAVABEAN包以及一些在其它页面中常用到的参数。具体代码如下SESSIONJSP的设置主要是方便系统对管理员权限的判定。因为,如果一个用户登录到系统,系统便会给他设定一个SESSION,这个SESSION在他退出系统之前均有效。系统可以通过SESSION来判定用户是否登录,并且,如果某个用户要执行系统某些功能时,系统也可以通过一个SESSION对其进行操作权限的判定。具电子商务论文29体代码如下FOOTJSP中包含了其它页面常用到的页面尾部的设计。具体代码如下新闻管理系统COPYRIGHTCELVEN2007新闻首页本系统的CSS设计了一个CSS样式表(CSSCSS)它主要设置页面中显示的BODY结构的样式、超链接A的样式、页面中表格TABLE样式等的设置。CSS样式表可以使系统整体风格一致。512前台实现系统前台视图层由INDEXJSP实现。INDEXJSP仅负责显示新闻栏目和系统已有新闻以及为管理员用户提供一个登录入口。INDEXJSP页面显示截图如图51。图51INDEXJSP页面实现截图电子商务论文30513后台实现系统后台视图层主要由MIANJSP、ADDNEWSJSP、CLASSMANAGEJSP和ADDCLASSJSP组成。MIANJSP是系统后台主页面,是管理员登录到系统所看到的第一个页面。其实现显示截图如图52。图52MAINJSP实现截图ADDNEWSJSP实现新闻的添加。当用户在后台主页面中选择添加新闻按钮时,管理员便进入此页面。其实现截图如图53。图53ADDNEWSJSP实现截图电子商务论文31CLASSMANAGEJSP实现新闻栏目的管理,管理员可以在此对进行新闻栏目的相关操作。其实现截图如图54。图54CLASSMANAGEJSP实现截图ADDCLASSJSP是CLASSMANAGEJSP的一个子页面,它实现栏目的添加功能。其实现截图如图55。图55ADDCLASSJSP实现截图电子商务论文3252模型层实现模型层实现中主要给出了实现功能模块中的各类的功能函数,具体代码见附件。521新闻显示在前台页面中显示系统已有新闻,需要新闻类NEWS和新闻管理类NEWSMGR。在此模块中主要实现将新闻数据库中的新闻显示到前台页面中。实现新闻显示的功能函数如下PUBLICCOLLECTIONGETALLNEWS/查询所有的新闻;PUBLICCOLLECTIONGETALLBYCATEGORYINTCATEGORYID/根据CATEGORYID得到某栏目所有的新闻;PUBLICNEWSGETBYIDINTID/根据ID得到新闻;PUBLICINTGETTOTAL/计算新闻的总数;PUBLICINTGETTOTALBYCATEGORYIDINTCATEGORYID/计算某类别新闻的总数。522新闻管理新闻管理模块是在系统后台对已有新闻进行编辑和删除以及添加新闻。在新闻管理类中如此实现新闻管理PUBLICNEWSGETBYIDINTID/根据ID得到新闻;PUBLICVOIDMODIFYNEWSNEWS/修改新闻;PUBLICVOIDDELETEINTID/删除新闻;PUBLICVOIDADDNEWSNEWS/添加新闻。523栏目管理栏目管理模块中,主要实现新闻栏目的添加、编辑和删除。栏目类CATEGORY和栏目管理类CATEGORYMGR如下实现栏目管理功能PUBLICCATEGORYGETBYIDINTID/根据ID得到栏目;PUBLICVOIDADDCATEGORYCATEGORY/添加新的栏目;PUBLICVOIDMODIFYCATEGORYCATEGORY/修改栏目名称;PUBLICVOIDDELETEINTID/删除栏目。53控制层实现本系统的控制层由SERVLET实现。这些作为控制层的SERVLET接收用户的请求,电子商务论文33并调用作为MODEL的JAVABEAN来进行处理,然后MODEL用业务逻辑来处理用户请求并返回数据,最后SERVLET用相应的VIEW来格式化MODEL返回的数据,通过表示层呈现给用户。在实现SERVLET之前,首先要在TOMCAT中配置好SERVLET运行的环境,并配置本应用程序的WEBXML配置文件,其SERVLET在WEBXML配置的基本格式如下XXSERVLETCLASSPATHXXSERVLETXXSERVLET/XXSERVLET在使用SERVLET之前都必须在WEBXML中定义好SERVLET才可以正常使用。下面具体实现每个SERVLET。531用户登录在此用户登录功能中,最重要的就是LOGINSERVLET的实现。它不仅调用数据库数据,还控制页面流向。当用户在前台中提供的登录入口输入用户名和密码时,INDEXJSP通过FORM将信息提交给LOGINSERVLET,LOGINSERVLET获得此信息,调用数据库连接池组件查找数据库对照看是否有与LOGINSERVLET收集到的信息匹配记录,如果有则成功登录到系统后台(MAINJSP),如果没有与之匹配的记录则将页面定位到登录错误页面(LOGINERRORJSP)重新登录。同样也会用到LOGINSERVLET对登录信息进行判断。(LOGINSERVLET代码见附件)532新闻管理新闻管理功能模块中主要实现新闻的添加、修改和删除,在控制层中它们分别是由ADDNEWSSERVLET、EDITNEWSSERVLET和DELETENEWSSEVLET实现。添加新闻控制层是由ADDNEWSSERVLET实现。管理员在添加新闻页面ADDNEWSJSP填写完需要填写的内容点击“发表”按钮时,将内容通过POST方法提交给ADDNEWSSERVLET。ADDNEWSSERVLET调用JAVABEANNEWS和NEWSMGR对新闻信息进行处理,然后将新闻信息保存到新闻数据表。电子商务论文34修改新闻控制层是由EDITNEWSSERVLET实现。管理员在浏览新闻时可以对其进行修改(EDITNEWSJSP)。当管理员提交修改后的新闻信息时,EDITNEWSJSP通过POST方法提交给EDITNEWSERVLET处理,EDITNEWSSERVLET处理后,用修改后的新闻信息去更新新闻数据表。删除新闻控制层是由DELETENEWSSERVLET实现。当管理员删除新闻时,用GET方法将新闻ID传递给DELETENEWSSERVLET,经过处理后更新新闻数据表信息。533栏目管理栏目管理功能模块中主要实现了新闻栏目的添加、修改和删除,在控制层中它们分别是由ADDCATEGORYSERVLET、EDITCATEGORYSERVLET和DELETECATEGORYSERVLET实现。栏目的添加由ADDCATEGORYSERVLET实现,当管理员在ADDCATEOGRYJSP中添加新闻栏目后,将信息通过POST方法提交给ADDCATEGORYSERVLET处理,更新栏目表中的信息。栏目的修改由EDITCATEGORYSERVLET实现,当管理员在EDITCATEGORYJSP中修改某个栏目后,将修改信息通过POST方法提交给EDITCATEGORYSERVLET,EDITCATEGORYSERVLET用修改后的信息去更新栏目数据表。栏目的删除由DELETECATEGORYSERVLET实现,当管理员删除某个栏目时,通过GET方法将栏目的ID传递给DELETECATEGORYSERVLET,经过处理后更新栏目数据表信息。54数据库实现541数据库表实现管理员表MASTERIFEXISTSSELECTFROMDBOSYSOBJECTSWHEREIDOBJECT_IDNDBOMASTERANDOBJECTPROPERTYID,NISUSERTABLE1DROPTABLEDBOMASTERGOCREATETABLEDBOMASTERUSERNAMECHAR12COLLATECHINESE_PRC_CI_ASNOTNULL,PASSWORDCHAR12COLLATECHINESE_PRC_CI_ASNOTNULLONPRIMARYG
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 6730.90-2025铁矿石金、银、铂、钯含量的测定电感耦合等离子体质谱法
- 材料疲劳裂纹萌生研究进展重点基础知识点
- 物业高层火灾应急预案(3篇)
- 化工厂消防火灾应急预案(3篇)
- 總体经济政策的目标与措施试题及答案
- 儿科发生火灾的应急预案(3篇)
- 2025年软件设计师考试的自我激励策略试题及答案
- 行政管理分析试题及答案解析
- 火灾及处突应急预案(3篇)
- 2025年软考网络管理员科研能力试题及答案
- 中医理疗合同范本
- 《经典常谈》各章测试题
- 职业教育教师数智素养指标体系构建
- 《燕京啤酒公司基于杜邦分析法的企业财务能力分析案例》15000字
- 快速康复理念与围手术期护理
- 2025年烟台经济技术开发区社区工作者招考高频重点提升(共500题)附带答案详解
- 市政道路工程冬季施工方案及措施
- 2023年山东省济宁市中考历史真题(原卷版)
- 电机控制与调速技术课件 项目四 步进电动机控制与调速技术
- 2024版保险合同法律适用与条款解释3篇
- 【MOOC】人格与精神障碍-学做自己的心理医生-暨南大学 中国大学慕课MOOC答案
评论
0/150
提交评论