




已阅读5页,还剩57页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本 科 毕 业 论 文 数据结构精品课程网站建设课程信息、作业管理、在线实验、课程设计 Data Structure High-quality Curriculum Website ConstructionCourse Information、Homework Management、Course Experiment、Course Design姓 名: 学 号:学院:软件学院系:软件工程专 业:软件工程年 级:2005级指导教师:陈海山 教授 年 月摘要随着Internet技术的飞速发展,Web网站的建设变得极为普及,而各种建设网站的技术也被广泛应用。随着时间的推移,传统的Web网站暴露了很多问题,如页面逻辑、业务逻辑和数据逻辑杂糅在一起,系统的耦合性高,修改、维护困难,扩展性差。为克服以上问题,新的开发方法也不断被提出来,如软件分层思想,MVC设计模式等等。本文就如何构建弱耦合性,可维护和可扩展的网站建设问题展开探讨。简要介绍J2EE和MVC,并根据当前Web技术的发展,剖析了当前被广泛应用的开源设计框架:Struts和Hibernate的工作原理,提出了采用Java环境下实现MVC设计模式的Struts框架和实现数据持久化的Hibernate框架结合起来开发数据库精品课堂网站,提高系统的实用性、灵活性,可移植性,克服传统Web系统的缺点。 第一部分是引言。简要阐述相关技术背景,项目起源和系统工作环境。并且介绍了开发流程和作者负责的工作 第二部分是系统的总体设计。了解业务流程,对数据库进行设计,在为系统的详细设计做准备。 第三部分是系统的详细设计。该部分详细描述了各模块包括的用例,实体类,实体类之间的关系,系统各模块的开发的基础和依据。 第四部分为系统的运行界面截图。 第五部分为结束语。本文在附录部分给出了本人负责的数据结构精品课程网站部分代码。关键词:精品课程 MVC模式 JAVAAbstractWith the rapid development of Internet technology, Web site-building become extremely popular, and a variety of technology has also been widely used to construct website. As time passes, traditional Web exposes many problems, such as logic and data mix together, the high coupling of system, which makes modification and maintenance so difficult. In order to overcome the problem above, new development methods have been proposed, such as MVC design patterns and so on.This article takes the Data Structure High-quality Curriculum Website Construction for example to discuss on how to build a weak coupling website. It briefly introduces J2EE and MVC, analies of the current widely used open-source design of the framework: Struts and Hibernate, the Java environment using MVC design patterns to achieve the Struts framework and to achieve data persistence Hibernate framework of the development of database products combine classroom website, to improve the relevance, flexibility, portability, and overcome the shortcomings of the traditional Web systems. The first is introduction. It describes the background of the technical to be used, the origin of the system and the running conditions. It also shows the systems development procedure as well as what the author has done in whole process. The second part is the total design. It grasps the business processes particularly, and the data base has also been designed. Its a preparation for detail design. The third part is design elucidation in details.in this part, it describes each module particularly,including its use case, entities and the relationship among use cases, tntities, as well as among them, which are the basis for realizing the modules. The fourth part shows the graphs for the running results. The fifth part is the end language.In appendix, there are part codes for the project of Data Structure High-quality Curriculum Website Construction which I take over.Key words: Excellent Course MVC JAVA目 录第一章 引言11.1 相关背景简介11.1.1 J2EE简介11.1.2 MVC设计模式21.1.3 Struts概述41.1.4 Hibenate框架61.2 项目概述71.2.1 总体概述81.2.2 运行环境81.2.3 假设和约定81.2.4 术语表91.2.5 项目开发流程及其控制9第二章 系统的总体设计112.1 网站的总体结构112.2 设计用例122.3 系统模块结构142.3.1 模块组成142.3.2 模块描述152.3.3 数据流图172.4 数据库结构设计182.4.1 数据库结构设计要点182.4.2 系统数据库表与实体对象的关系19第三章 系统的详细设计203.1 模块详细设计203.1.1 数据库接口213.1.2 Hibernate数据包213.1.3 业务逻辑层213.1.4 用户表示层223.1.5 WEB层233.2 客户浏览信息模块243.2.1 详细用例描述243.2.2 客户浏览网页顺序图253.2.3 组件描述273.3 管理员信息管理模块293.3.1 详细用例描述293.3.2 管理员顺序图313.3.3 组件描述37第四章系统的运行结果404.1 客户运行界面404.1.1 客户课程信息页面404.1.2 客户作业上传页面404.1.3 客户在线实验页面414.1.4 客户课程设计页面414.2 管理员运行界面424.2.1 管理员课程信息增删改424.2.2 管理员在线实验增删改434.2.3 管理员课程设计增删改45第五章 结束语47致 谢48参考文献49附 录51ContentsChapter 1 Introduction11.1 background introduction11.1.1 J2EE introduce11.1.2 MVC design model21.1.3 Struts describe41.1.4 Hibenate framework61.2 Project Introduction71.2.1 General Summarize81.2.2 Running Conditions81.2.3 Hypothesis and Assumption81.2.4 Glossary91.2.5 Process of The System and its control9Chapter 2 The Total Design112.1 Total Structure of Web112.2 Design Use Case122.3 Modules of The System142.3.1 Composition of Modules142.3.2 Modules Describe152.3.3 Data Flow Graphic172.4 Data Base Designing182.4.1 Main point of Data Base Designing182.4.2 Relationship between Data Table and Entity19Chapter 3 Design Elucidation in Details203.1 Modules Detail Designing203.1.1 Data Base Interface213.1.2 Hibernate Data Pakage213.1.3 Business Logic Layer213.1.4 Client Experssion Layer223.1.5 WEB Layer233.2 Client Browse Information243.2.1 Detail Describe of Use Case243.2.2 Sequence of The Case253.2.3 Describe of The Compositons273.3 Administrator Informaton Management293.3.1 Detail Describe of Use Case293.3.2 Sequence of The Case313.3.3 Deseribe of The Compositions37Chapter 4Running Result404.1 Client Running Interface404.1.1 Client Information Page404.1.2 Client Homework Page404.1.3 Client Experiment Page414.1.4 Client Design Page414.2 Administrator Running Interface424.2.1 Administrator Information Page424.2.2 Administrator Experiment Page434.2.3 Administrator Deign Page45Chapter 5 Conclusions47Acknowledgements48References49Appendix5154数据结构精品课程网站课程信息、作业管理、在线实验、课程设计第一章 引言1.1 相关背景简介1.1.1 J2EE简介J2EE是一个开放的、基于标准的平台,可以开发、部署和管理N层结构的、面向Web的、以服务器为中心的企业级应用,它是利用Java 2 平台来简化与多级企业解决方案的开发、部署和管理相关的诸多复杂问题的应用体系结构。J2EE平台采用一个多层次分布式的应用模式。这意味着应用逻辑根据功能被划分成组件,组成J2EE应用的不同应用组件安装在不同的服务器上,这种划分是根据应用组件属于多层次J2EE环境中的哪一个层次来决定的。如图1-1所示,J2EE应用可以由三或四个层次组成,J2EE多层次应用一般被认为是三层应用,因为它们是被分布在三个不同的地点:客户端机器、J2EE服务器和数据库或后端的传统系统服务器。三层架构应用是对标准的客户端/服务器应用架构的一种扩展, 即在客户端应用和后台存储之间增加一个多线程应用服务器。 图1-1 J2EE多层应用J2EE体系包括JSP、Servlet、EJB、WEB SERVICE等多项技术。这些技术的出现给电子商务时代的WEB应用开发提供了一个非常有竞争力的选择。怎样把这些技术组合起来,形成一个适应项目需要的稳定架构是项目开发过程中一个非常重要的步骤。一个成功的软件需要有一个成功的架构,但软件架构的建立是一个复杂而又持续改进的过程,软件开发者们不可能对每个不同的项目做不同的架构,而总是尽量重用以前的架构,或开发出尽量通用的架构方案,Struts就是流行的基于J2EE的架构方案之一,其他常用的基于J2EE的架构方案还有Turbine、RealMothods等。本文主要探讨Struts框架技术的应用。 在J2EE应用程序架构的发展路程中,主要经历了两个大的阶段:1. Model 1在JSP页面中结合业务逻辑、服务器端处理程序和HTML,在JSP页面中同时实现显示、业务逻辑和流程控制,从而快速的完成Web应用开发。这种模型的不足之处:A. 不利于应用扩展和更新。B. 业务逻辑和表示逻辑混合在JSP页面中没有进行抽象和分离,不利于应用系统业务的重用和改动。2. Model 2表示的是基于MVC模式的框架。根据Model 2,servlet 处理数据存取和导航流, JSP处理表现。Model 2 使Java工程师和HTML设计者分别工作于它们所擅长和负责的部分。Model 2应用的一部分发生改变并不强求其他部分也跟着发生改变。HTML开发人员可以改变程序的外观和感觉,并不需要改变后端servlet的工作方式。把应用逻辑、处理过程和显示逻辑分成不同的组件实现。弥补了Model1的不足。1.1.2 MVC设计模式MVC设计模式是一种著名的用户界面软件开发设计模式,它是模型-视图-控制器(Model-View-Controller)缩写。它强制性地把应用程序的输入、处理和输出分开。MVC把应用程序分成3个核心部分:模型层、视图层和控制层,他们分别负责不同的任务,图1-2中给出了这几个模块各自的功能以及它们的相互关系。图1-2 MVC模型组件关系图 模型(Model)模型封装了用户数据和处理数据的业务逻辑,体现了应用程序的当前状态,而且可以将用户数据状态的变化提供给多个显示该数据的视图共用。模型是应用程序的核心。 视图(View)视图提供了用户界面,是用户和应用程序的交互的窗口,既接受用户输入,也把模型数据状态显示给用户,但是视图不负责任何业务逻辑处理,仅仅是将用户输入数据传递给控制器或将模型数据显示给用户。 控制器(Controller)控制器连接了模型和视图,根据用户请求判断将请求交给哪个模型来完成,然后调用视图来显示模型处理后的用户请求结果。MVC设计模式将应用程序进行了分层,视图和模型通过控制器连接,首先,控制层接受用户的请求,并决定应该调用哪个模型来进行处理;其次,模型根据用户请求进行相应的业务逻辑操作,并返回数据;最后控制层调用相应的视图来格式化模型返回的数据,并通过视图呈现给用户。从而减少了用户界面和业务逻辑之间的耦合,使程序设计更加清晰、灵活,也提高了软件的可扩展性、可维护性。在最初的JSP网页中,像数据库查询语句这样的数据层代码和像HTML这样的表示层代码是混在一起的。经验比较丰富的开发者会将数据从表示层分离开来,但这通常不是很容易做到的,他需要精心地计划和不断地尝试。MVC从根本上强制性地将它们分离开。尽管构造MVC应用程序需要一些额外的工作,但是它给我们带来的好处是毋庸置疑的。首先,多个视图能共享一个模型。如今,同一个Web应用程序会提供多种用户界面,在MVC设计模式中,模型响应用户请求并返回响应数据,视图负责格式化数据并把它们呈现给用户,业务逻辑和表示层分离,同一个模型可以被不同的视图重用,所以大大提高了代码的可重用性。其次,模型是自包含的,与控制层和视图层保持相对独立,所以可以方便地改变应用程序的数据层和业务规则。由于MVC的三个模型相互独立,改变其中一个不会影响其他两个,所以依据这种设计思想能构造良好的松耦合构件。最后,控制层提高了应用程序的灵活性和可配置性。控制层可以用来连接不同的模型和视图去完成用户的需求,也可以为构造应用程序提供强有力的手段。给定一些可重用模型和视图,控制层可以根据用户的需求选择适当的模型进行处理,然后选择适当的视图将处理结果显示给用户。1.1.3 Struts概述Struts继承了MVC设计模式的特性,遵守了J2EE的Servlet、JSP等技术规范,并且根据J2EE的特点做了相应的变化和扩展,是J2EE体系架构的一种轻量级实现。作为一款优秀的Java Web应用程序的开发框架,Struts框架凭借其清晰性、灵活性,成为当前最为广泛应用的轻量级Java Web 开发框架。Struts具有很高的可配置性,和有一个不断增长的特性列表。一个前端控制组件,一系列动作类,动作映射,处理XML的实用工具类,服务器端java bean 的自动填充,支持验证的WEB 表单,国际化支持,生成HTML,实现表现逻辑和模板组成了struts的灵魂。图1-3显示了Struts组件是如何一起工作的。图1-3 Struts框架原理图1. 控制器的实现Struts框架中采用了ActionServlet和Action类以及Struts-config.xml配置文件作为控制器的实现。其中,Struts-config.xml配置文件配置了不同用户请求及对应的具体业务逻辑组件来供ActionServlet类查询。ActionServlet类是中心Servlet,负责处理所有的用户请求。当用户提出请求,ActionServlet类最先对请求进行处理,它将根据Struts-config.xml配置文件将用户请求映射到具体的Action类;而当Action类调用模型组件处理好用户请求,并返回了处理结果后,仍然由ActionServlet类根据Struts-config.xml配置文件将结果转发到视图提供给用户,或者转发另外一个Action做进一步处理。Action类实现了具体的业务逻辑,它接受用户的输入,然后调用具体的模型组件来完成用户请求。2. 视图的实现Struts构架主要采用了JSP作为视图的实现,它提供了丰富的JSP标签库支持应用程序的开发,而且引入了ActionForm组件(实质为JavaBean)作为用户表单的封装来完成数据的传输。3. 模型的实现Struts框架对模型即复杂的数据持久化层没有提供太多的支持,但是这也就是说开发人员有更多自由来选择合适量级的持久化技术,比如Hibernate、EJB等等。Struts框架实现了MVC设计模式,但是它是典型的表现层框架,对模型的实现是不足的,所以有必要引入其他架构加强对模型的实现。1.1.4 Hibenate框架Hibernate框架是开放源代码的对象关系映射工具(Object-Relational Mapping),是一款基于Java环境的优秀的对象持久化开发框架。它根据O/R(对象/关系)映射技术思想,对JDBC进行了轻量级封装,使开发人员可以使用一种面向对象的方式来操纵和管理关系数据库,所以从技术本质上来说该框架是一种提供面向对象的数据库服务中间件。Hibernate框架位于应用程序的业务化和持久化层,在运行时的体系结构如图3所示:SessionFactory接口,是一个数据库映射关系的内存映像,它是线程安全的,所以可以为多个线程同时调用产生Session,是Session的工厂,另外它为事务之间可以重用的数据提供了可供选择的二级缓存。图1-4 Hibernate运行时体系结构图Session接口,是Hibernate框架的运行中心,它被用户程序调用,提供与持久化相关的诸多操作,如加载、添加、查询、更新和删除持久化对象,是实现用户程序持久化工作的主要接口,所以Session被称为持久化管理器。Transaction接口,是用来指定原子操作的单元范围,它通过对底层具体的JDBC、JTA等事务进行封装和抽象,形成一个统一的事务操作界面。此外,Hibernate还有两个重要的核心接口:Configuration接口和Query和Criteria接口。Configuration接口是用来对Hibernate配置和启动。Query和Criteria接口是用来执行对数据库的查询,且支持HQL、SQL多种查询方式,其中HQL是一种面向对象的查询语言。通过使用HQL语句将复杂的关系算法用对象的方式描述,在很大程度上简化了对数据的查询,加快了开发的效率。在Hibernate中有一个简单而直观的API,用于对数据库所表示的对象执行查询。要创建或修改这些对象,只需在程序中与它们进行交互,然后告诉Hibernate保存即可。这样,大量封装持久化操作的业务逻辑不再需要编写烦琐的JDBC语句,从而使数据持久层得到了极大的简化。 Struts框架没有具体定义模型层的实现,在实际开发中,模型层通常是和业务逻辑紧密相连的,并且要对底层数据进行操作。下面介绍一种开发策略,将Hibernate引入到Struts框架的模型层中,使用它来进行数据封装和映射,提供持久化的支持。图1-5显示了基于Hibernate和Struts开发策略的体系结构图。图1-5 Hibernate和Struts开发策略1.2 项目概述本文将通过运用MVC设计模式,使用具体的Struts框架和Hibernate框架建设数据库精品课程网站,在系统总体上对将要开发的【数据结构精品课程网站】进行描述,对需要开发的系统在各个实现环节进行总体设计和详细设计,并就服务的性能和数据准确性、有效性的保证作出说明。1.2.1 总体概述项目名称: 数据结构精品课程网站【数据结构精品课程网站】主要提供功能点: 登录系统 客户浏览网站信息 客户上传作业 管理员添加网站信息 管理员修改网站信息 管理员删除网站信息 管理员查看网站信息系统中有管理员与客户两种用户角色。1.2.2 运行环境 系统使用J2EE体系结构实现,运用Struts与Hibernate,实现B/S架构。 客户端: Windows 9X以上操作系统;CPU:PII 166以上,RAM:64MB,硬盘:2GB以上,CD-ROM 硬件服务器: CPU:PIII 450以上,RAM:128MB,硬盘:2GB以上,CD-ROM 操作系统平台:Windows2000 server以上 数据库系统:MySql5 WEB服务器:Tomcat 5.x 浏览器: IE5.0以上 开发工具:Java、MyEclipse1.2.3 假设和约定 数据信息衔接体系建立依赖于用户方专家级人员手工创建和维护。 数据库性能(响应速度和安全性等)受数据库性能约束。1.2.4 术语表表1-1 术语表MVC模型-视图-控制器(Model-View-Controller)缩写DAO数据库交互层BUS业务逻辑层1.2.5 项目开发流程及其控制因为软件开发是一个非常复杂的工程,有诸多的因素影响工程的效率和成败。软件开发涉及范围广,且需要许多不同背景的个人和团队参与。由于这些复杂性,在软件开发的整个生命周期中每一个阶段都有可能留下隐患和错误,从而导致项目最终延误或失败。为了及早发现隐患和错误,我们在软件开发时采用迭代模型,它根据客户需求以及实施情况把项目分为多个阶段,其中每个阶段都可能包括如下流程:图1-6 项目开发流程第二章 系统的总体设计2.1 网站的总体结构从总体上,系统符合 MVC的分层模式,将表示层,控制层和持久层相分离。系统分为 5 层,web Page(表示层), Action(控制层), BUS(业务逻辑层),DAO(数据酷交互层), Entity.(持久层)。 web Page主要为页面代码部分; Action 处理简单的调用,之后将数据传给BUS进行逻辑操作,调用BUS层的方法; BUS层接收Action传来的数据,进一步调用DAO层的方法,这样设计的目的是为了进一步解耦,便于代码的移植与复用。 DAO层进行与持久对象的操作, 进行管理员的增删改查操作和用户的查询操作。因为运用了Hibernate框架,所以通过相应的对数据库的操作为对POJO对象的操作。 Entity为持久层,将与数据库密切联系,用于保存需要用到的数据库信息。在此处因为用到Hibernate框架,所以通过OR映射实现数据库操作,这里的通过POJO类映射数据库中的表。数据结构精品课程系统运用了MVC设计模式,MVC强制性的将数据从表示层上分离开来,尽管构造MVC应用程序需要一些额外的工作,但是它给我们带来的好处是毋庸置疑的。它不仅大大提高了代码的可重用性,而且降低了耦合度,便于后期的维护,提高了应用程序的可移植性、灵活性和可配置性。该系统的包图具体见如下:图2-1 系统包图2.2 设计用例用例是文本形式的情节描述,用以说明某参与者使用系统以实现某些目标,广泛用于需求的发现和记录工作中,用例会影响项目的许多方面,包括分析、设计、实现、项目管理和测试制品。用例本身就是需求的一种描述。在数据结构精品课程网站建设中,参与者有两类,一类是客户,另一类是管理员,一下将分别对参与者是客户和管理员的情况进行分析。1.参与者为客户的用例:用户主要功能为登陆网站,浏览网站每个网页的信息,浏览课件和上传作业。详见图2-2客户用例图图2-2 客户用例图2.参与者为管理员的用例:管理员在登陆到系统之后,可以对网站每个网页的信息进行增加,修改,删除和查询操作。图2-3 管理员用例图2.3 系统模块结构和用例图相似,系统的模块也由客户模块和管理员模块两部分组成,两个模块是从用例图的需求中演变而来,其实就是需求的具体实现。客户可以浏览课程信息、课程设计、在线实验和课件,并且能上传作业,而管理员除了浏览外还能够都课程信息、课程设计、在线实验的页面内容进行增加、修改、删除操作。2.3.1 模块组成图2-4 客户浏览信息模块结构图2-5 管理员信息管理模块结构2.3.2 模块描述该系统主要功能由:登录功能模块、客户浏览信息模块、管理员信息管理模块组成。具体功能描述如下: 1:登录模块,主要通过调用用户登录模块完成登录工作,使本模块进入可用状态。 2:客户浏览信息模块,主要通过调用代理商信息管理模块的接口完成信息管理工作,使信息能被很好的管理 3:管理员信息管理模块,主要通过调用客户信息查询与管理模块的接口完成客户信息的查询与管理工作,获得相应信息是业务得以进行。1. 登录模块用例名称登录用例标识号1参与者管理员用户、普通用户简要说明管理员或客户登录或退出本模块前置条件管理员或客户已经打开本模块基本事件流1 弹出登录界面,提示用户输入用户名、密码。2 在用户名和密码登录界面中输入有效用户名和密码,并点击“登录”按钮。记录用户登录行为到登录日志表,进入可用状态。3.用例终止其它事件流1在登录框中,直接按“退出”按钮,关闭本模块异常事件流1登录框中输入无效的用户名或密码时,提示错误信息,并记录用户登录行为到登录日志表,重复超过三次,自动退出。后置条件本模块进入可用状态。注释无2. 客户浏览信息模块用例名称客户浏览信息用例标识号2参与者客户简要说明客户查看各个页面信息前置条件客户已经打开客户浏览信息模块基本事件流1.进入客户信息浏览模块2.浏览客户信息3.上传作业4.退出其它事件流无异常事件流上传作业没按照规格后置条件无注释无3. 管理员信息管理模块用例名称管理员信息管理用例标识号3参与者管理员用户简要说明管理员添加,修改,删除,查看信息前置条件管理员已经成功进入本模块基本事件流1.管理员进入信息管理模块2.查看页面信息3.添加页面信息4.修改页面信息5.删除页面信息6.对客户信息进行修改或删除其它事件流管理员退出该模块异常事件流无后置条件无注释无2.3.3 数据流图图2-6 系统状态图1) 主要工作流程分析客户登陆精品课程网站,点击相应的按钮实现从数据库中取出各个网页的数据,从而实现查看课程信息,作业和课件,在线实验,课程设计各个网页的内容。管理员登录系统,登录后可以对网站中课程信息,在线实验,课程设计等网页的内容和链接数进行修改,并与数据库交互。管理员可以添加删除修改各网页中的信息,并与数据库交互。2) 主要数据流分析l 处理:修改课程信息某个超链接点击的内容;l 数据源:管理员通过网页输入相关内容并点击修改;l 数据流:网站页面显示修改成功2.4 数据库结构设计 2.4.1 数据库结构设计要点 下图2-7为系统的数据库表,给出本系统内所使用的每个数据库表的名称、标识符以及它们之中每个数据项和记录,由于本系统较小,所以数据库中的表很少,没有复杂的逻辑关联关系,都是独立的表,下图显示的是本人要使用到的表,而不是系统所有的表: 图2-7 数据库设计下图中每个表Id为表的主键,Name为网页中对应的超链接的名称,Content为点击超链接后需要显示的内容,就是客户浏览的内容,管理员可以对其进行增加、修改、删除和查询。表2-1 Tbl-information表(数据库中课程信息内容)列名数据类型是否为空说明IdInt(10)Not null课程信息的编号NameVarchar(10)Not null课程信息的菜单名称ContentVarchar(100)Null课程信息菜单对应内容表2-2 Tbl-experiment表(数据库中在线实验内容)列名数据类型是否为空说明IdInt(10)Not null在线实验的编号NameVarchar(10)Not null在线实验的菜单名称ContentVarchar(100)Null在线实验菜单对应内容表2-3 Tbl-design表(数据库中课程设计的内容)列名数据类型是否为空说明IdInt(10)Not null课程设计的编号NameVarchar(10)Not null课程设计的菜单名称ContentVarchar(100)Null课程设计菜单对应内容2.4.2 系统数据库表与实体对象的关系系统的数据库表通过 My Sql 数据库来保存,数据结构由 MyEclipse开发环境反向生成,即一张数据库的表和一个实体类相关联,通过操作实体类而不是操作数据库中的表对数据进行增删改查,这样使程序设计更加符合面向对象的思想。下图为系统中与数据库中的表相关的Entity实体对象利用反向生成和数据映射,产生程序中的Entity实体类如下图: tblInformationtbl_information表, tblExperimenttbl_experiment表, tblDesigntbl_design表, 图2-8 程序的Entity对象第三章 系统的详细设计3.1 模块详细设计图3-1 系统模块层次图上图3-1所示,是系统中各个模块的层次结构,其中各个包的信息说明如下:表3-1 系统中各个包的信息序号包名称(package)描述1mons公共类、工具类2mons.struts通用的顶层Struts抽象类3mons.hibernate通用的顶层Hibernate抽象类、工具类4com.sc.bus业务逻辑层5com.sc.dao数据访问层6com.sc.dao.factoryDAO的抽象工厂,用来生成获取DAO实例7com.sc.pojo持久化对象映射层,每个类与数据表对应8com.sc.web用户表示层(视图层),包含字典类9com.sc.web.actionACTION控制层10com.sc.web.filterFILTER过滤器11com.sc.web.formFORM表单缓冲器3.1.1 数据库接口该层次采用Hibernate框架技术进行数据库访问层(DAO)的统一管理和使用。com.sc.pojo包内为持久对象类(persistent object class),可使用Hibernate的反向工具自动生成。根据数据库定义导出表结构,并自动生成对应的映射文件(*.hbm.xml)和POJO java代码。POJO为持久对象,对应数据库的实体。3.1.2 Hibernate数据包Hibernate的应用开发在此就不再说明,见Hibernate的API文档。对数据库的操作,在应用中经常会使用到分页读取数据库记录。这里将使用一些实用的组件。表3-2 Hibernate数据包包名称说 明mons.hibernateHibernateUtil类:提供生成和关闭Session,包括事务处理,支持多数据源;GenericDAO类:封装了对持久对象的新增、逻辑删除、修改、获取实体等动作。mons提供数据分页、编码格式转换、日期格式转换等工具类。com.sc.dao封装了Hibernate的insert、update、delete等对Persistent Class类(即POJO类)的操作。com.sc.pojoPO类(persistent object class)及对应的映射文件(*.hbm.xml)。另外,为了加强系统的可靠性,*.hbm.xml中,主键采用UUID.HEX策略生成。3.1.3 业务逻辑层业务逻辑层中所有的类文件都在com.sc.bus包中。具体的类见下图。表3-3 业务逻辑层包包名称说 明com.sc.bus封装了对所有实体对象的业务逻辑的操作。图3-2 BUS包中类的继承关系3.1.4 用户表示层用户表示层中所有的类文件都在com.sc.web和mons.struts包中。表3-4 用户表示层表包名称说 明mons.strutsBaseAction类:封装了对日志操作、分页组件调用等通用的动作。com.sc.webInitConfig类:提供了用户层的数据字典,应包含订单状态、页面路径、执行成功或失败的标识等常量的描述。Passport类:包含用户常规信息的JAVABEAN,作为验证用户身份及权限的令牌。com.sc.web.action封装了对业务对象的调用操作。com.sc.web.form封装了对表单页面的缓冲器类。com.sc.web.filterSessionFilter类:检查Session的有效性。HibernateSessionRequestFilter:设置事务操作。图3-3 Action包中类的继承关系3.1.5 WEB层以下为Web层的结构,main文件夹中为公共的页面,user文件夹中为客户访问到的页面,admin文件夹中为管理员访问到的页面。图3-3 公共页面图3-4 管理员页面图3-5 客户页面3.2 客户浏览信息模块完成客户浏览information.jsp,experiment.jsp,homework.jsp,design.jsp各页面信息并且上传作业。3.2.1 详细用例描述用例名称客户信息管理与查询用例标识号2参与者客户简要说明客户查看各个页面信息前置条件客户已经打开客户信息管理模块基本事件流1.进入客户信息管理模块2.浏览客户信息3.上传作业4.退出其它事件流无异常事件流上传作业没按照规格后置条件无注释无3.2.2 客户浏览网页顺序图 1.客户浏览Information.jsp页面图3-6 客户浏览课程信息 2.客户浏览Experiment.jsp页面图3-7 客户浏览在线实验 3.客户浏览Design.jsp页面图3-8 客户浏览课程设计 4.客户上传作业图3-9 客户上传作业组件描述表3-5 客户组件描述组件名称类型路径说 明Information.jspJSP/user浏览课程信息页面。Experiment.jspJSP/user浏览在线实验页面。Design.jspJSP/user浏览课程设计页面。Homework.jspJSP/user浏览课件和上传作业InformationActionJAVACom.sc.action处理课程信息的Action类ExperimentActionJAVACom.sc.action处理在线实验的Action类DesignActionJAVACom.sc.action处理课程设计的Action类UploadActionJAVACom.sc.action处理上传作业的Action类InformationBus.javaJAVACom.sc.bus课程信息的业务逻辑类ExperimentBus.javaJAVACom.sc.bus在线实验的业务逻辑类DesignBus。JavaJAVACom.sc.bus课程设计的业务逻辑类InformationDao.javaJAVACom.sc.dao课程信息的数据库操作类ExperimentDao.javaJAVACom.sc.dao在线实验的数据库操作类DesignDao.javaJAVACom.sc.dao课程设计的数据库操作类表3-6 com.sc.bus.InformationBus类 (介绍主要方法)返回值方法名称备注ListshowCourseLink() 获取课程信息的一组超链接返回所有信息的name的listStringshowCourseIntroduce(String id)获取某条课程信息返回信息的内容表3-7 com.sc.bus.ExperimentBus类 (介绍主要方法)返回值方法名称备注ListshowExperimentLink()获取在线实验的一组超链接返回所有在线实验的name的listStringshowExperime
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 马的解剖生理课件
- 2025届新疆维吾尔巴音郭楞蒙古自治州和静县三年级数学第一学期期末学业水平测试试题含解析
- 股权管理学课件
- 工程项目的多维度评估试题及答案
- 水利水电工程前沿动态试题及答案
- 2025年市政工程绩效评价试题及答案
- 2025年经济师行业前景展望试题及答案
- 工程项目管理法规试题及答案
- 通信行业客户服务手册
- 2025年市政工程公共事务试题及答案
- (二模)保定市2025年高三第二次模拟考试地理试卷(含答案解析)
- 足浴店员工涉黄合同协议
- 2023年1月浙江高考英语试题(含答案解析)
- 应用文写作-介绍智能校园图书馆的英文发言稿+讲义-2025届吉林省长春市高三下学期质量监测(三)英语试题
- 2025-2030中国叶黄素行业市场发展现状及竞争格局与投资发展研究报告
- 非全日制劳动合同协议
- 创新工程实践智慧树知到期末考试答案章节答案2024年北京大学等跨校共建
- 小小科学家《生物》模拟试卷A(附答案)
- 切尔诺贝利核事故永远不能忘却的事故(课堂PPT)
- 安装调试培训及验收方案
- 劳动合同法培训ppt课件
评论
0/150
提交评论