基于JSP的网上书城管理系统的设计与实现_第1页
基于JSP的网上书城管理系统的设计与实现_第2页
基于JSP的网上书城管理系统的设计与实现_第3页
基于JSP的网上书城管理系统的设计与实现_第4页
基于JSP的网上书城管理系统的设计与实现_第5页
已阅读5页,还剩87页未读 继续免费阅读

下载本文档

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

文档简介

1、目录摘要3ABSTRACT41绪论52研究现状和设计目标621现状分析622 设计目标63开发环境和开发工具的介绍631 java 概述63.1.1 Java的定义73.1.2 Java面向对象的设计思想73.1.3 JDK的安装832 开发工具eclipse概述93.2.1 Eclipse的结构和内核103.2.2 eclipse的安装与配置1033 数据库MySQL概述113.3.1 MySQL的特性113.3.2 MySQL的应用113.3.3 MySQL管理123.3.4 MySQL的安装与配置1234 Web服务器Tomcat概述123.4.1 apache-tomcat的安装与配置

2、1435 所用其他技术的概述153.5.1 JSP概述153.5.2 Hibernate概述163.5.3 Struts概述173.5.4 MVC模式概述174需求分析1941系统需求1942 功能需求204.2.1 前台购书子系统204.2.2 后台管理主系统205总体设计2151基本设计概念和处理流程2152系统层次模块图225.2.1 前台购书子系统225.2.2 后台管理主系统主要划分2353前台系统E-R图24531系统分E-R图2554数据流图2855 UML设计3256数据库设计335.6.1 图书表-e_product335.6.2 用户表-e_user335.6.3 收货人表

3、-e_user_item335.6.4 定单表-e_order345.6.5 定单条目表-e_order_item345.6.6 图书类型表-e_catalog345.6.7 管理员表-e_admin356详细设计与实现3561前台购书子系统356.1.1 用户首页356.1.2 用户中心356.1.3 购物车376.1.4 订单396.1.5 在线客服(邢阿亮完成)396.1.6 退出4062后台管理主系统406.2.1 登陆界面406.2.2 后台管理主界面416.2.3 销售管理426.2.4 系统功能427测试4571用户登录测试用例4572管理员管理测试用例4573数据库备份测试用例

4、4674数据库恢复测试用例46结束语47致谢48参考文献48附录1中英文资料翻译部分49附录2部分源代码75摘要本文是关于书店管理系统的相关软件开发的一篇实践性论文。计算机信息化管理有着储存量大,速度快等许多优点,提供给我们的处理信息及时快捷,因此我们利用计算机提供给我们的信息对在线网上购书进行管理,经过对多个开发软件及数据库软件的优越性进行评估之后,最终选择用JSP和MySQL开发一个B/S结构的皖北书城管理系统。本次毕业设计是应用当前高速发展的计算机技术,组建网上书城管理系统,是基于JSP的网上书城管理系统的设计与实现。本系统具有:前台购书子系统和后台管理主系统。后台管理主系统功能有:人事

5、管理采购管理在线客服管理,销售管理库存查询系统管理等,并且界面简单操作简便。关键词 书店管理 后台管理 管理系统 ABSTRACTThis thesis with practical application is concerning about developing programme of the managing system in bookshops.The computer informationization management has the storage capacity to be big,speed quick and so on many merits,provide

6、s promptly for ours process information quickly,Therefore we use the computer to provide carry on the management for ours information to online on-line purchase books, passes through carries on the appraisal after many development softwares and the database softwares superiority, finally chooses wit

7、h JSP and MySQL develops a B/S structure the Northern Anhui book city management system management system. This graduation project is the application current high speed development computer technology, sets up on-line book city management system management system, is with realizes based on the JSP o

8、n-line book city management system management systems design. This system has: The onstage purchase books subsystem and the backstage manage the main system. The backstage manages the main system function to include: The personnel management procurement management online guest obeys disciplinary mea

9、sures the principle, the sales management stock inquiry system administration and so on, and the contact surface simple operation is simple.Key Words Bookstore management Backstage managementManagement system 1绪论就书城系统而言,由于网络已经覆盖全球,信息量大而独具优势。售书的理念也很简单,就是读者可以自己寻找自己喜爱的书为替读者找寻他们想要的书。对于 读者来说,网上书城近在咫尺,并且永

10、不下班关门,读者可以随时随地自由地查询和订购图书,读者无需亲临书城,一档一档地找,一本一本地翻,只要坐在电脑前,开机上网即可买到所需书籍,而且读者的挑选余地也大多了,检索也很方便,同时还减少了书城过程中的支出,另外应当看到图书选购必得翻阅详看,耗时费力,特别是热衷图书,几乎都是奋力开拓事业者和苦心求学深造者,时间对他们而言无比宝贵,网上书城节省了大量时间,这对于那些没有时间经常逛传统书城或 其住所离传统书城较远的读者来说,具有实际意义。因此网上售书必将有长足的发展。开办网上书城系统也可以为在校大学生提供方便、廉价、高效的书城方式,促进文化传播,帮助国家和学校培养优秀的人才,具有长远的社会效益和

11、经济效益。2研究现状和设计目标21现状分析网上书城是随着网络技术的发展而出现的一种新型图书销售渠道。它通过人与电子通信方式的结合,依靠计算机网络,以通讯技术为基础,实现图书销售的网上交易。网上书城同传统的店面书城相比,网上书城的经营方式和销售渠道是全新的;它24小时的全天候和全方位服务是店面书城所不能比及的;成本低廉更是开设网上书城的主要原因。而与其他商品相比,书籍运送几乎不怕碰撞碎裂,不具时效性;同时书本具有功能单一,形式简单,易于判断和选择而独具优势,最适合于网上交易;再次是单价低,降低了消费者第一次在网络购书的门槛。由于电子商务的迅猛发展,网上书城系统发展也已经达到一个较高的水准,现在的

12、网上书城系统实现的功能也非常的多,最重要的当属图书的销售,也就是管理库房中的图书,以及管理用户的购书车,从而实现结账等一系列功能。22 设计目标具备现代化气息的书店管理系统。其中我的任务是;一是:前台购书子系统,二是:后台管理主系统的销售管理和系统管理。3开发环境和开发工具的介绍31 java 概述Java语言其实最是诞生于1991年,起初被称为OAK语言,是SUN公司为一些消费性电子产品而设计的一个通用环境。他们最初的目的只是为了开发一种独立于平台的软件技术,而且在网络出现之前,OAK可以说是默默无闻,甚至差点夭折。但是,网络的出现改变了OAK的命运。在Java出现以前。Internet上的

13、信息内容都是一些乏味死板的HTML文档。这对于那些迷恋于WEB浏览的人们来说简直不可容忍。他们迫切希望能在WEN中看到一些交互式的内容,开发人员也极希望能够在WEB上创建一类无需考虑软硬件平台就可以执行的应用程序,当然这些程序还要有极大的安全保障。对于用户的这种要求,传统的编程语言显得无能为力,面SUN的工程师敏锐地察觉到了这一点,从1994年起,他们开始将OAK技术应用于WEB上,并且开发出了HotJava的第一个版本。当SUN公司1995年正式以Java这个名字推出的时候,几乎所有的WEB开发人员都想到:噢,这正是我想要的。于是Java成了一颗耀眼的明星,丑小鸭一下了变成了白天鹅。3.1.

14、1 Java的定义 Java是一种简单的,面象对象的,分布式的,解释的,键壮的安全的,结构的中立的,可移植的,性能很优异的多线程的,动态的语言。Java的开发环境有不同的版本,如sun公司的Java Developers Kit, 简称 JDK。后来微软公司推出了支持Java规范的Microsoft Visual J+ Java开发环境,简称 VJ+。 3.1.2 Java面向对象的设计思想 Java面向对象的设计思想有:抽象,封装,继承,多态。抽象面向对象设计的基本要素是抽象,程序员通过抽象来管理复杂性。管理抽象的有效方法是使用层次式的分类特性,这种方法允许用户根据物理含义分解一个复杂的系统

15、,把它划分成更容易管理的块. 面向对象程序设计的本质:这些抽象的对象可以被看作具体的实体,这些实体对用来告诉我们作什么的消息进行响应。计算机对象包含了它所有的属性,以及操作,这就是面向对象设计的三大原则之一:封装.封装封装是一种把代码和代码所操作的数据捆绑在一起,使这两者不受外界干扰和误用的机制.封装可被理解为一种用做保护的包装器,以防止代码和数据被包装器外部所定义的其他代码任意访问.对包装器内部代码与数据的访问通过一个明确定义的接口来控制.封装代码的好处是每个人都知道怎样访问代码,进而无需考虑实现细节就能直接使用它,同时不用担心不可预料的副作用。在JAVA中,最基本的封装单元是类,一个类定义

16、着将由一组对象所共享的行为(数据和代码).一个类的每个对象均包含它所定义的结构与行为,这些对象就好象是一个模子铸造出来的.所以对象也叫做类的实例。在定义一个类时,需要指定构成该类的代码与数据.特别是,类所定义的对象叫做成员变量或实例变量.操作数据的代码叫做成员方法.方法定义怎样使用成员变量,这意味着类的行为和接口要由操作实例数据的方法来定义。由于类的用途是封装复杂性,所以类的内部有隐藏实现复杂性的机制.所以JAVA中提供了私有和公有的访问模式,类的公有接口代表外部的用户应该知道或可以知道的每件东西.私有的方法数据只能通过该类的成员代码来访问.这就可以确保不会发生不希望的事情。继承继承是指一个对

17、象从另一个对象中获得属性的过程.是面向对象程序设计的三大原则之二,它支持按层次分类的概念.例如,波斯猫是猫的一种,猫又是哺乳动物的一种,哺乳动物又是动物的一种.如果不使用层次的概念,每个对象需要明确定义各自的全部特征.通过层次分类方式,一个对象只需要在它的类中定义是它成为唯一的 各个属性,然后从父类中继承它的通用属性.因此,正是由于继承机制,才使得一个对象可以成为一个通用类的一个特定实例.一个深度继承的子类将继承它在类层次中的每个祖先的所有属性。继承与封装可以互相作用.如果一个给定的类封装了某些属性,它的任何子类将会含有同样得属性,另加各个子类所有得属性.这是面向对象程序在复杂性上呈线性而非几

18、何增长的一个重要概念.新的子类继承其所有祖先的所有属性.子类和系统中的其他代码不会产生无法预料的交互作用。多态多态是指一个方法只能有一个名称,但可以有许多形态,也就是程序中可以定义多个同名的方法,用一个接口,多个方法来描述.可以通过方法的参数和类型引用。封装,继承,多态的组合使用在由封装,继承,多态所组成的环境中,程序员可以编写出比面向过程模型更健壮,更具扩展性的程序.经过仔细设计的类层次结构是重用代码的基础.封装能让程序员不必修改公有接口的代码即可实现程序的移植.多态能使程序员开发出简洁,易懂,易修改的代码3.1.3 JDK的安装JAVA的运行环境就是JDK ,配置如下第一步:右击“我的电脑

19、”,点击“属性”:第二步:选择“高级”选项卡,点击“环境变量”: 第三步:在“系统变量”中,设置3项属性,JAVA_HOME,PATH,CLASSPATH(大小写无所谓),若已存在则点击“编辑”,不存在则点击“新建”: 第四步:JAVA_HOME设为JDK的安装路径(如C:ProgramFilesJavajdk1.5.0_09),此路径下包括lib,bin,jre等文件夹(此变量最好设置,因为以后运行tomcat,eclipse等都需要依靠此变量);Path使得系统可以在任何路径下识别java命令,设为: %JAVA_HOME%bin;%JAVA_HOME%jrebin CLASSPATH为j

20、ava加载类(classorlib)路径,只有类在classpath中,java命令才能识别,设为:.;%JAVA_HOME%lib;%JAVA_HOME%libtools.jar(要加.表示当前路径) %JAVA_HOME%就是引用前面指定的JAVA_HOME第五步:“开始”“运行”,键入“cmd”:第六步:键入命令“java-version”,出现下图画面,说明环境变量配置成功:32 开发工具eclipse概述Eclipse是以个集成开发环境(Integrated Development Environment)。其前身是IBM的Visual Age for Java(VA4J),IBM投

21、入了3千万美元。Eclipse是可扩展的体系结构,可以集成不同软件开发供应商开发的产品,将他们开发的工具和组件加入到Eclipse平台中。随Java应用的广泛,各大主要软件供应商都参与到Eclipse架构开发中,使得Eclipse插件数量与日增加。其中,IBM的WebSphere Studio Workbench是突出的例子。Eclipse平台的免费,架构的成熟,行业协会Eclipse基金会的支持,使得很多的Java开发采用了Eclipse架构。如今,IBM通过起附属的研发机构Object Technologies International(OTI),继续引领Eclipse开发。3.2.1

22、Eclipse的结构和内核插件(plug-in)是遵循一定规范的应用程序结构编写出来的程序,也成为扩展,不同于组件。Eclipse正是一个精心设计的、可扩展的核心结构。通过插件的形式,将根据自己需要选择的扩展开发工具集成到Eclipse平台核心。因此使得可以避免因过去不兼容工具带来的麻烦,降低开发出成本,大幅度提高工作效率。Eclipse本身作为一个开放源码的软件项目,它主要包含3个子项目:平台子项目,Java开发工具(JDT-java)子项目,插件开发环境(PDE-plug-in)子项目。其中,Java开发工具JDT为开发人员提供大量的集成工具集,主要为Java应用程序提供编程接口(API)

23、。Eclipse软件开发工具箱(SDK)是主要有Eclipse本身的项目软件和其他一些开发源吗的第三方软件组成。次者,插件开发环境(JDT)则为插件开发和测试提供相应的环境,如:创建插件清单文件、定义扩展点等。其他的Java集成开发环境有Jbuilder、WebSpher Studio、 NetBeans。然而Eclipse以其强大的可扩展性和开放性脱颖而出,拥有为数众多的支持者,也被许多大的企业所青睐。3.2.2 eclipse的安装与配置下载eclipse-SDK-3.2.2-win32.zip,解压缩后即可。3.2.3 eclipse的插件myeclipse的安装第一步:下载MyEcli

24、pse_5.5.1GA_E3.2.2_ManualInstall.zip,解压缩第二步:在eclipse下建立links文件夹,里面新建MyEclipse.txt第三步 在MyEclipse.txt中写下path=E:/MyEclipse,然后重新打开Eclipse即可。33 数据库MySQL概述MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。3.3.1 MySQL的特性1

25、.使用C和C+编写,并使用了多种编辑器进行测试,保证源代码的可移植性 2.支持AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统 3.为多种编程语言提供了API。这些编程语言包括C、C+、Eiffel、Java、PHP、Python、Ruby和Tcl等。4.支持多线程,充分利用CPU资源5.优化的SQL查询算法,有效地提高查询速度 6.既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB 231

26、2、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名7.提供TCP/IP、ODBC和JDBC等多种数据库连接途径8.提供用于管理、检查、优化数据库操作的管理工具 9.可以处理拥有上千万条记录的大型数据库 。3.3.2 MySQL的应用与其他的大型数据库例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之处,如规模小、功能有限(MySQL不支持视图(已经被列入5.1版的开发计划)、事件等)等,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥

27、有成本。目前Internet上流行的网站构架方式是LAMP(Linux+Apache+MySQL+PHP),即使用Linux作为操作系统,Apache作为Web服务器,MySQL作为数据库,PHP作为服务器端脚本解释器。由于这四个软件都是遵循GPL的开放源码软件,因此使用这种方式不用花一分钱就可以建立起一个稳定、免费的网站系统。3.3.3 MySQL管理可以使用命令行工具管理MySQL数据库(命令mysql 和 mysqladmin),也可以从MySQL的网站下载图形管理工具MySQL Administrator和MySQL Query Browser。phpMyAdmin是由php写成的My

28、SQL资料库系统管理程式,让管理者可用Web介面管理MySQL资料库。phpMyBackupPro也是由PHP写成的,可以透过Web介面创建和管理数据库。它可以创建伪cronjobs,可以用来自动在某个时间或周期备份MySQL 数据库。3.3.4 MySQL的安装与配置下载MySQL的安装包,按照安装软件步骤进行,选项就使用默认的,在下面图示选择语言是gbk231234 Web服务器Tomcat概述Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其它一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新

29、的Servlet和Jsp规范总能在Tomcat中得到体现。Tomcat被JavaWorld杂志的编辑选为2001年度最具创新的java产品,可见其在业界的地位。Tomcat4.0x中采用了新的Servlet容器:Catalina,完整的实现了Servlet2.3和Jsp1.2规范。Tomcat提供了各种平台的版本供下载,可以从其官方网站上下载其源代码版或者二进制版。由于Java的跨平台特性,基于Java的Tomcat也具有跨平台性。与传统的桌面应用程序不同,Tomcat中的应用程序是一个WAR(Web Archive)文件。WAR是Sun提出的一种Web应用程序格式,与JAR类似,也是许多文件

30、的一个压缩包。这个包中的文件按一定目录结构来组织:通常其根目录下包含有Html和Jsp文件或者包含这两种文件的目录,另外还会有一个WEB-INF目录,这个目录很重要。通常在WEB-INF目录下有一个web.xml文件和一个classes目录,web.xml是这个应用的配置文件,而classes目录下则包含编译好的Servlet类和Jsp或Servlet所依赖的其它类(如JavaBean)。通常这些所依赖的类也可以打包成JAR放到WEB-INF下的lib目录下,当然也可以放到系统的CLASSPATH中,但那样移植和管理起来不方便。在Tomcat中,应用程序的部署很简单,你只需将你的WAR放到To

31、mcat的webapp目录下,Tomcat会自动检测到这个文件,并将其解压。你在浏览器中访问这个应用的Jsp时,通常第一次会很慢,因为Tomcat要将Jsp转化为Servlet文件,然后编译。编译以后,访问将会很快。另外Tomcat也提供了一个应用:manager,访问这个应用需要用户名和密码,用户名和密码存储在一个xml文件中。通过这个应用,辅助于Ftp,你可以在远程通过Web部署和撤销应用。当然本地也可以。Tomcat不仅仅是一个Servlet容器,它也具有传统的Web服务器的功能:处理Html页面。但是与Apache相比,它的处理静态Html的能力就不如Apache.我们可以将Tomca

32、t和Apache集成到一块,让Apache处理静态Html,而Tomcat处理Jsp和Servlet.这种集成只需要修改一下Apache和Tomcat的配置文件即可。基于Tomcat的开发其实主要是Jsp和Servlet的开发,开发Jsp和Servlet非常简单,你可以用普通的文本编辑器或者IDE,然后将其打包成WAR即可。我们这里要提到另外一个工具Ant,Ant也是Jakarta中的一个子项目,它所实现的功能类似于Unix中的make.你需要写一个build.xml文件,然后运行Ant就可以完成xml文件中定义的工作,这个工具对于一个大的应用来说非常好,我们只需在xml中写很少的东西就可以将

33、其编译并打包成WAR.事实上,在很多应用服务器的发布中都包含了Ant.另外,在Jsp1.2中,可以利用标签库实现Java代码与Html文件的分离,使Jsp的维护更方便。3.4.1 apache-tomcat的安装与配置第一步:使用WinZip或WinRAR等解压缩工具将jakarta-tomcat-5.5.7.zip解压到指定的驱动器和目录中。笔者是在D盘上直接解压,产生了目录jakarta-tomcat-5.5.7,解压后的文件存放于D: jakarta-tomcat-5.5.7下。第二步:在桌面“我的电脑”上单击右键,选择“属性”,第三步:单击“高级”选项卡,选择“环境变量(E)”,第四步

34、:在“系统变量”下方单击“新建”按钮。在“变量名”中输入“JAVA_HOME”,在变量值中输入JDK所在的目录“C:ProgramFilesJavajdk1.5.0_09,然后单击“确定”按钮第五步: 最后在“环境变量”对话框上单击“确定”按钮,结束JAVA_HOME环境变量的设置。我们再一次转到D: jakarta-tomcat-5.5.7bin目录下,用鼠标双击startup.bat文件,可以看到如图所示的启动信息。Tomcat启动信息然后,打开浏览器,在地址栏中输入http:/localhost:8080/(localhost表示本地机器,8080是Tomcat默认监听的端口号),将出现

35、如图所示的Tomcat页面,即配置成功。Tomcat的默认主页35 所用其他技术的概述3.5.1 JSP概述JSP(JavaServer Pages)是一种基于Java的脚本技术。在JSP 的众多优点之中,其中之一是它能将 HTML 编码从 Web 页面的业务逻辑中有效地分离出来。用 JSP 访问可重用的组件,如 Servlet、JavaBean 和基于 Java 的 Web 应用程序。JSP 还支持在 Web 页面中直接嵌入 Java 代码。可用两种方法访问 JSP 文件:浏览器发送 JSP 文件请求、发送至 Servlet 的请求。1. JSP 文件访问 Bean 或其它能将生成的动态内容

36、发送到浏览器的组件。图5-1说明了该 JSP 访问模型。当 Web 服务器接收到一个 JSP 文件请求时,服务器将请求发送至 WebSphere应用服务器。WebSphere应用服务器 对 JSP 文件进行语法分析并生成 Java 源文件(被编译和执行为 Servlet)。Java 源文件的生成和编译仅在初次调用 Servlet 时发生,除非已经更新了原始的 JSP 文件。在这种情况下,WebSphere应用服务器 将检测所做的更新,并在执行它之前重新生成和编译 Servlet。浏览器发送 JSP 文件请求2. 发送至 Servlet 的请求生成动态内容,并调用 JSP 文件将内容发送到浏览器

37、。图5-2说明了该访问模型。该访问模型使得将内容生成从内容显示中分离出来更为方便。WebSphere应用服务器 支持 HttpServiceRequest 对象和 HttpServiceResponse 对象的一套新方法。这些方法允许调用的 Servlet 将一个对象放入(通常是一个 Bean)请求对象中,并将该请求传递到另一个页面(通常是一个 JSP 文件)以供显示。调用的页面从请求对象中检索 Bean, 并用 JSP 来生成客户机端的 HTML。发送至 Servlet 的请求3.5.2 Hibernate概述Hibernate是一种Java语言下的对象关系映射解决方案。 它是使用GNU宽通

38、用公共许可证发行的自由、开源的软件。它为面向对象的领域模型到传统的关系型数据库的映射,提供了一个使用方便的框架。它的设计目标是将软件开发人员从大量相同的数据持久层相关编程工作中解放出来。无论是从设计草案还是从一个遗留数据库开始,开发人员都可以采用Hibernate。 Hibernate不仅负责从Java类到数据库表的映射(还包括从Java数据类型到SQL数据类型的映射),还提供了面向对象的数据查询检索机制,从而极大地缩短的手动处理SQL和JDBC上的开发时间。要使用Hibernate,还需要Hibernate相关的一些jar:antlr.jar、asm.jar、asm-attrs.jars、c

39、glib.jar、commons-collections.jar、commons-logging.jar、log4j.jar、dom4j.jar、ehcache.jar、jta.jar。这些jar在hibernate-3.2.1的解压缩的lib目录里,最重要的是解压缩目录下的hibernate3.jar,将这些jar放在项目工程的WEB-INFlib目录下。或者把他们配置到eclipse的windows-preferences-java-build path-user libraries里。3.5.3 Struts概述Struts是一个基于Sun J2EE平台的MVC框架,主要是采用Servl

40、et和JSP技术来实现的。由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,在过去的一年中颇受关注。Struts把Servlet、JSP、自定义标签和信息资源(message resources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间, Struts是一个非常不错的应用框架。 要使用Struts和使用Hibernate一样也要进行配置,即把Struts的jar包加到eclipse里,方法和Hibernate配置时的一样。3.5.4 MVC模式概述MVC模式是Model-View-Controller的缩写,中文翻译为模式-

41、视图-控制器。MVC应用程序总是由这三个部分组成。Event(事件)导致Controller改变Model或View,或者同时改变两者。只要Controller改变了Models的数据或者属性,所有依赖的View都会自动更新。类似的,只要Controller改变了View,View会从潜在的Model中获取数据来刷新自己。MVC模式最早是smalltalk语言研究团提出的,应用于用户交互应用程序中。smalltalk语言和java语言有很多相似性,都是面向对象语言,很自然的SUN在petstore(宠物店)事例应用程序中就推荐MVC模式作为开发Web应用的架构模式。MVC模式是一种架构模式,其

42、实需要其他模式协作完成。在J2EE模式目录中,通常采用service to worker模式实现,而service to worker模式可由集中控制器模式,派遣器模式和Page Helper模式组成。而Struts只实现了MVC的View和Controller两个部分,Model部分需要开发者自己来实现,Struts提供了抽象类Action使开发者能将Model应用于Struts框架中。1.设计思想MVC英文即Model-View-Controller,即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层模型层、视图层、控制

43、层。 视图(View)代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML、XML和Applet。随着应用的复杂性和规模性,界面的处理也变得具有挑战性。一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。业务流程的处理交予模型(Model)处理。比如一个订单的视图只接受来自模型的数据并显示给用户,以及将用户界面的输入数据和请求传递给控制和模型。 模型(Model):就是业务流程/状态的处理以及业务规则的制定。业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回

44、最终的处理结果。业务模型的设计可以说是MVC最主要的核心。目前流行的EJB模型就是一个典型的应用例子,它从应用技术实现的角度对模型做了进一步的划分,以便充分利用现有的组件,但它不能作为应用设计模型的框架。它仅仅告诉你按这种模型设计就可以利用某些技术组件,从而减少了技术上的困难。对一个开发者来说,就可以专注于业务模型的设计。MVC设计模式告诉我们,把应用的模型按一定的规则抽取出来,抽取的层次很重要,这也是判断开发人员是否优秀的设计依据。抽象与具体不能隔得太远,也不能太近。MVC并没有提供模型的设计方法,而只告诉你应该组织管理这些模型,以便于模型的重构和提高重用性。我们可以用对象编程来做比喻,MV

45、C定义了一个顶级类,告诉它的子类你只能做这些,但没法限制你能做这些。这点对编程的开发人员非常重要。 业务模型还有一个很重要的模型那就是数据模型。数据模型主要指实体对象的数据 保存(持续化)。比如将一张订单保存到数据库,从数据库获取订单。我们可以将这个模型单独列出,所有有关数据库的操作只限制在该模型中。 控制(Controller)可以理解为从用户接收请求, 将模型与视图匹配在一起,共同完成用户的请求。划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层并不做任何的数据处理。例如,用户点击一个连接,控制层接受请求后, 并

46、不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。因此,一个模型可能对应多个视图,一个视图可能对应多个模型。 模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。如果用户通过某个视图的控制器改变了模型的数据,所有其它依赖于这些数据的视图都应反映到这些变化。因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图,导致显示的更新。这实际上是一种模型的变化-传播机制。模型、视图、控制器三者之间的关系和各自的主要功能,如图1所示。 2. MVC的优点大部分用过程语言比如ASP、PHP开发出来的Web应用,初始的开发模板就是混合层的数据编程。例如

47、,直接向数据库发送请求并用HTML显示,开发速度往往比较快,但由于数据页面的分离不是很直接,因而很难体现出业务模型的样子或者模型的重用性。产品设计弹性力度很小,很难满足用户的变化性需求。MVC要求对应用分层,虽然要花费额外的工作,但产品的结构清晰,产品的应用通过模型可以得到更好地体现。首先,最重要的是应该有多个视图对应一个模型的能力。在目前用户需求的快速变化下,可能有多种方式访问应用的要求。其次,由于模型返回的数据不带任何显示格式,因而这些模型也可直接应用于接口的使用。 再次,由于一个应用被分离为三层,因此有时改变其中的一层就能满足应用的改变。一个应用的业务流程或者业务规则的改变只需改动MVC

48、的模型层。控制层的概念也很有效,由于它把不同的模型和不同的视图组合在一起完成不同的请求,因此,控制层可以说是包含了用户请求权限的概念。最后,它还有利于软件工程化管理。由于不同的层各司其职,每一层不同的应用具有某些相同的特征,有利于通过工程化、工具化产生管理程序代码。4需求分析41系统需求 皖北书城管理系统需要满足来自两个方面需求:第一:用户可以通过浏览器进行注册,登陆,选书,购书,下定单等进行在线购买图书,方便用户,第二,书城工作人员通过计算机来管理书城的日常内部工作和各类图书,以及对前台在线购书的管理,并对图书进行图书采购,增加图书库存,销售管理,适应不同用户的需求。42 功能需求4.2.1

49、 前台购书子系统1 返回首页返回到前台书城主界面,并列出本书城所有图书,供用户选择。2 用户中心用户可以通过用户进行注册,注册后即可使用前台的各项功能。如果不注册,只能看到首页图书,不能进行其他的相关操作。已经注册的用户可以直接登陆,登陆后的用户点用户中心可以看到自己用户的相关信息,以及自己是否下过定单。3 购物车注册的用户,可以把看中的图书放入到自己的购物车里,并且可以对购物车的图书进行修改数量,购物车将自动根据图书的单价和数量计算总价格,如果不满意,可以清空购物车,删除已选的图书,也可以继续购书。4 订单购买好图书,用户就可以下定单,定单列出用户信息,用户可以添加收获人,选择汇款方式,以及

50、提交定单。5 在线客服 (邢阿亮完成)6 退出用户退出登陆并返回到书城主界面。4.2.2 后台管理主系统1 采购管理2 财务管理3 客服管理(邢阿亮完成)4 人员管理5 库存管理(黄修海完成)6 销售管理书城管理人员通过此模块来处理定单,根据定单向用户发货。7系统功能本模块分为四个部分;管理员管理:管理员具有使用本系统的后台管理功能,可以添加管理员和修改管理员信息用户管理:而用户是需要使用前台购书子系统的功能。管理员可以添加用户和修改用户。数据库备份:可以对本系统的数据库里的数据进行备份数据库恢复:可以对本系统的数据库里的数据进行恢复5总体设计51基本设计概念和处理流程本系统针对网络用户,实现

51、了对书城日常网上销售管理和企业内部的各项基本功能,对网络用户和企业管理员都操作简单方便上手快。另外,基于成本以及安全的考虑,对数据库进行备份和恢复。本系统使用eclipse工具开发,采用MySQL作为后台数据库,在满足需求的前提下,将系统对运行环境的性能要求降到最低。前台购书子系统基本流程是:用户登陆-前台主界面-选择各项功能。后台管理主系统基本流程是:管理员登陆-后台主界面-选择各项功能。52系统层次模块图根据需求分析的结果:本系统划分为前台购物子系统和后台管理管理主系统皖北书城管理系统后台管理主系统前台购物子系统5.2.1 前台购书子系统主要划分以下6个子模块:返回首页用户中心购物车定单在

52、线客服退出。如图所示。前 台 购 书 子 系 统返 回 首 页 用 户 中 心 购 物 车定 单 退 出在 线 客 服5.2.2 后台管理主系统主要划分主要划分以下7个子模块:采购管理财务管理客服管理人员管理库存管理销售管理系统功能。如图所示。后 台 管 理 主 系 统采 购 管 理 财 物 管 理 客 服 管 理人 员 管 理 销 售 管 理库 存 管 理 系 统 功 能 53前台系统E-R图isbnuseridusernamepasswordorderiduser_item_iduseridcreratetimeprinterpricenameauthortotalpricepayinfoorderstate用 户图 书 描 述定 单购物车定单明细收 货 人user_item_idstatedescriptioncatalogidbooknumItem_officephoneitem_mobilephoneiten_iditem_postcodeItem_addressuseridItem_email1N1M1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论