基于web的超市管理系统的设计与实现Word格式.docx
- 文档编号:22341483
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:19
- 大小:162.70KB
基于web的超市管理系统的设计与实现Word格式.docx
《基于web的超市管理系统的设计与实现Word格式.docx》由会员分享,可在线阅读,更多相关《基于web的超市管理系统的设计与实现Word格式.docx(19页珍藏版)》请在冰豆网上搜索。
Servlet是一种独立于平台和协议的服务器端的Java应用程序,可以生成动态的Web页面。
它担当Web浏览器或其他HTTP客户程序发出请求,与HTTP服务器上的数据库或应用程序之间的中间层。
Servlet是位于Web服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。
2.3hibernate简介
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
Hibernate的核心接口一共有6个,分别为:
Session、SessionFactory、Transaction、Query、Criteria和Configuration。
这6个核心接口在任何开发中都会用到。
通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。
HibernateJDBC连接,通过SessionFactory来创建和缓存(pool)JDBC连接.即如下打开一个Session:
Sessionsession=sessions.openSession();
//openanewSession
如此,一旦需要进行数据访问时,就会从连接池(connectionpool)获得一个JDBC连接.
Hibernate工作机制:
1.通过Configuration().configure();
读取并解析hibernate.cfg.xml配置文件
2.由hibernate.cfg.xml中的<
mappingresource="
com/xx/User.hbm.xml"
/>
读取并解析映射信息
3.通过config.buildSessionFactory();
//创建SessionFactory
4.sessionFactory.openSession();
//打开Sesssion
5.session.beginTransaction();
//创建事务Transation
6.persistentoperate持久化操作
7.session.getTransaction().commit();
//提交事务
8.关闭Session
9.关闭SesstionFactory
Hibernate的详细运行过程如下:
A:
应用程序先调用Configration类,该类读取Hibernate的配置文件及映射文件中的信息,并用这些信息生成一个SessionFactpry对象。
B:
然后从SessionFactory对象生成一个Session对象,并用Session对象生成Transaction对象;
可通过Session对象的get(),load(),save(),update(),delete()和saveOrUpdate()等方法对PO进行加载,保存,更新,删除等操作;
在查询的情况下,可通过Session对象生成一个Query对象,然后利用Query对象执行查询操作;
如果没有异常,Transaction对象将提交这些操作结果到数据库中。
2.4Ajax简介
Ajax(AsynchronousJavaScriptandXML)是一个结合了Java技术、XML、以及JavaScript的编程技术,通过Ajax,您的JavaScript可使用JavaScript的XMLHttpRequest对象来直接与服务器进行通信。
通过这个对象,您的JavaScript可在不重载页面的情况与Web服务器交换数据。
Ajax,异步JavaScript与XML,是使用客户端脚本与Web服务器交换数据的Web应用开发方法。
这样,Web页面不用打断交互流程进行重新加裁,就可以动态地更新。
使用Ajax,你可以创建接近本地桌面应用的,直接的、高可用的、更丰富的、更动态的Web用户接口界面。
Ajax可使因特网应用程序更小、更快,更友好。
Ajax是一种独立于Web服务器软件的浏览器技术。
Ajax的原理就是:
通过javascript的方式,将前台数据通过xml忽略此处对象传递到后台,后台在接收到请求后,将需要的结果,再传回到前台,这样就可以实现不需要页面的回发,页是数据实现来回传递,从页实现无刷新。
其中最关键的一步就是从服务器获得请求数据。
Xml忽略此处request对象完全用来向服务器发出一个请求的,它的作用也局限于此,但它的作用是整个ajax实现的关键,我们可以把服务器端看成一个数据接口,它返回的是一个纯文本流,当然,这个文本流可以是XML格式,可以是Html,可以是Javascript代码,也可以只是一个字符串。
这时候,Xml忽略此处request向服务器端请求这个页面,服务器端将文本的结果写入页面,这和普通的web开发流程是一样的,不同的是,客户端在异步获取这个结果后,不是直接显示在页面,而是先由javascript来处理,然后再显示在页面。
Ajax运行流程为:
(1)对象初始化
(2)发送请求
(3)服务器接收请求并进行处理
(4)服务器返回响应数据
(5)客户端接收
(6)依据响应数据修改客户端页面内容
2.4.1DWR
DWR是DirectWebRemoting的缩写。
DWR框架是服务器端的ajax框架,最基础的还是XMLHttpRequest,在服务器端的dwr.xml文件中配置好后,dwr框架会把根据配置内容生成相应的js文件,在这个js文件里,它提供了访问服务器端的请求。
DWR是一个引擎,可以把服务器端Java对象的方法公开给JavaScript代码。
使用DWR可以有效地从应用程序代码中把Ajax的全部请求-响应循环消除掉。
这意味着客户端代码再也不需要直接处理XMLHttpRequest对象或者服务器的响应。
不再需要编写对象的序列化代码或者使用第三方工具才能把对象变成XML。
甚至不再需要编写servlet代码把Ajax请求调整成对Java域对象的调用。
DWR是作为Web应用程序中的servlet部署的。
把它看作一个黑盒子,这个servlet有两个主要作用:
首先,对于公开的每个类,DWR动态地生成包含在Web页面中的JavaScript。
生成的JavaScript包含存根函数,代表Java类上的对应方法并在幕后执行XMLHttpRequest。
这些请求被发送给DWR,这时它的第二个作用就是把请求翻译成服务器端Java对象上的方法调用并把方法的返回值放在servlet响应中发送回客户端,编码成JavaScript。
DWR还提供了帮助执行常见的用户界面任务的JavaScript工具函数。
DWR运行原理:
(1)部署阶段:
读dwr.xml,在该xml文件中定义的Javascript(如名为service),它对应的类为如DWRTest,这里cc相当于DWRTest,通过反射生成cc.js,其中DWRTest中的方法也就是调用后台类的方法;
(2)运行阶段:
触发事件调用一个方法——>
从自己的js中调用了上面的cc.js中的方法t1——>
调用客户端的AJAX引擎发出请求——>
以上都是由客户端完成,后面的都是有服务器端来完成:
Web容器先接到请求,找上下文路径:
/dwr/匹配dwr中对应的servlet——>
读dwr.xml;
根据js名匹配creator定义;
依据creator方法创建实例(反射);
调用方法,得到返回值——>
out出去——>
回调处理——>
调用客户端的回调处理
2.4.2JSON
JSON
即
JavaScriptObjectNatation,它是一种轻量级的数据交换格式,非常适合于服务器与
JavaScript
的交互。
JSON协议是一种数据传输协议,可以理解其为表达数据协议,其实JSON是用Ajax加载数据,和普通的加载方式是一样的,不过JSON利用了javascript的一个特性,使得在web2.0领域JSON以至于超过XML。
Json的工作机制:
Json数据格式可以理解为JavaScript的对象的序列化字符串.。
观察实际的Json字符串,你就会发现其实跟js中对象字面量定义代码基本相同,可以简单的使用eval方法将字符串解析成js对象。
因为json解析效率高,并且相对xml冗余数据小得多,所以被各种框架广泛使用。
Json原理和语法Ajax(AsynchronousJavaScriptandXML)说到底就是一种浏览器异步读取服务器上XML内容的技术。
但XML只是符合很多规范的文本,只是保存字符的文件。
而浏览器异步读取的只是服务器上的文本内容,所以在Ajax开发时完全不必拘泥于XML。
JSON(JavaScriptObjectNotation)一种简单的数据格式,比xml更轻巧。
JSON与XML不同,JSON只能用来传输数据,而不能用作文档格式。
JSON是JavaScript原生格式,这意味着在JavaScript中处理JSON数据不需要任何特殊的API或工具包。
JSON的规则很简单:
对象是一个无序的“‘名称/值’对”集合。
一个对象以“{”(左括号)开始,“}”(右括号)结束。
Json的解析过程:
1.从服务器断获取JSON数据(json字符串)。
2.由此字符串创建JSON对象,newJSONObject(json);
此构造函数会调用this(newJSONTokener(json))。
3.上一步产生的JSONTokener对象会将json串转化成一个StringReader对象,作为参数传给他的相对应的构造方法。
4.经过上述步骤,就得到了一个JSONTokener对象,并将一步步传过来的字符串转化成Reader对象赋值给其成员变量reader。
5.由JSONTokener对象来完成对json数据的解析。
2.5WEB服务器
Tomcat
使用Myeclipse插件+tomcat,可以实现一键部署,之前需要配置tomcat,端口若不冲突则不用配置了,主要需在Myeclipse配置路径。
tomcat是一个web容器,javaweb项目相当与容器中的一个元素,当把javaweb项目部署到服务器的时候就相当于在容器里面加入了一个元素。
首先请求的地址是本机的ip地址,这样请求能够发送到本机上,那么如何连接本机的tomcat。
关键在于端口,请求会根据本机上所有开启的程序的端口信息给相应的程序。
tomcat的默认端口是8080所以请求地址需要加上:
8080
2.5开发工具
MyEclipse
MyEclipse,是一个十分优秀的用于开发Java,J2EE的Eclipse插件集合,MyEclipse企业级工作平台(MyEclipseEnterpriseWorkbench,简称MyEclipse)是对EclipseIDE的扩展,利用它可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。
它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate。
3系统分析和架构选择
本次我们组做的小型超市管理系统是小型超市商品销售及货物管理的主要控制部分,基于销售服务行业。
有助销售部门提高工作效率,帮助超市工作人员利用计算机,方便的对超市的有关数据进行管理、输入、输出、查找等有关操作,使杂乱的超市数据能够具体化、直观化、合理化。
3.1系统分析
作为一款小型超市管理系统应具有基本销售管理功能,能灵活实时得由管理人员进行添加,删改信息,有所有商品的信息记录,能实时记录销售状况,反应库存情况基员工基本信息等。
故我们对系统进行以下功能设计:
登录模块,人事管理,销售管理,进货管理,库存管理,商品信息管理,系统管理等七大功能模块。
3.2系统功能设计
根据需求分析确定该系统划分为以下几个管理功能:
1.登录模块
该模块主要完成员工及管理员的登录管理,密码修改。
需要连接数据库,拥有超级管理员,具有添加及删除登录人员信息的功能。
2.人事管理
模块内拥有超市所有员工的基本信息以及员工的销售业绩,员工登录有查看功能,管理员登录拥有管理功能。
3.销售管理
顾客结账时通过扫描商品信息录入系统,实时显示超市剩余商品,当天营业额。
对销售商品进行统计,包括每种商品销售情况,同种商品不同品牌销售情况。
有利于管理员的市场预估。
4.进货管理
商品进库后录入信息,包括进价,售价,数量以及保质期限,有助于管理员实时掌握商品情况。
5.库存管理
管理员拥有管理权限,包括实时库存数量,位置以及商品质保截止期限。
6.商品信息管理
管理员拥有权限,能实时更新维护不同商品信息情况,包括不同商品,不同品牌供货商联系方式等。
7.系统管理
查询系统登录人员信息,删除系统登录人员信息。
3.3模块功能
功能模块分布图
会员管理功能用例图:
员工销售管理功能用例图:
模块用例活动图:
模块描述:
商品进货子系统是超市管理系统的重要组成部分,其中的进货信息由管理员进行更新。
管理员可以对进货管理模块的进货信息进行查询,进货管理模块给人事管理模块提供新供货商信息,给库存模块提供已进货信息。
库存管理模块给进货管理模块提供进货信息请求,人事管理模块给进货模块提供已由供货商信息。
4系统的设计与实现
该部分主要介绍系统的详细设计与实现。
七大功能模块的实现过程以及整体流程的实现。
4.1系统功能设计
由系统功能需求分析及设计可知,系统分七大功能:
登录模块,人事管理,销售管理,进货管理,库存管理,商品信息管理和系统管理
系统功能结构图如下所示:
系统功能结构图
4.2关键问题的解决方案
进货管理的流程逻辑的实现:
进货管理的流程逻辑图
4.3系统的实现
4.3.1系统登录功能的实现
系统登录功能主要完成对系统用户身份的认证,只有通过该认证的用户被认为是合法的,系统只允许合法的用户进行操作才能保证文件等各类信息的安全性,下面介绍下在该功能实现过程中各框架的职能:
1、JSP在该功能中负责完成与用户的交互,包括登录前职工号密码的填写以及登录成功后主界面的显示。
2、Struts在该功能中负责处理用户登录提交的表单LoginForm,Struts控制器根据配置将用户请求转交给Spring代理处理,处理完成后返回ActionForward对象,Struts控制器再根据该对象返回给用户登录成功或是失败的JSP页面。
3、Spring在该功能中接受来自Struts控制器的请求,并根据请求参数login.do将该请求分发到LoginAciton处理,该Action调用CommonManImpl对象的login()方法,如果该方法返回空值则表明登录失败,否则登录成功。
4、Hibernate在该功能中负责从数据库映射实体中取出数据以判断login()方法传来的用户和密码是否正确,如果是则返回该Users对象,否则返回空值。
该界面的功能按钮是根据登录用户的权限动态加载的,这样设计避开了用户进行不符合自身权限的操作时所造成的麻烦,而且用户能看到的功能都有权限操作,更加人性化。
对于用户输入数据的逻辑验证,系统采用Validator验证框架实现。
用户登录时,提供正确的职工号和密码方可登录,对于没有注册的用户需要先注册到系统获取登录密码后方可登录,用户的注册需要先通过身份验证,该验证主要是保障该注册用户的基本信息(身份证号)已登记到系统以确保信息的安全性(不是每个用户都可以注册)。
登录操作的流程图为:
4.3.2人事管理功能的实现
人事管理功能主要完成对职工和供货商的信息管理,其中管理包括查看、增加和删除等操作。
下面介绍下在该功能实现过程中各框架的职能:
1、JSP在该管理功能中负责完成与用户的交互,包括人事组织的显示,增加信息,删除信息等结果。
2、Struts在该功能中负责接收用户的请求信息并转交给Spring代理处理,待处理完成后根据返回的ActionForward对象返回给用户相应的JSP页面。
3、Spring在该过程中接受来自Struts控制器的请求,并根据请求参数类型将该请求分发到相应的Aciton处理,该Action调用FileManImpl对象中相应的方法处理,处理完成后返回ActionForward对象。
4、Hibernate在该过程中负责根据业务在数据库映射实体中执行插入、更新或删除操作。
在该功能中主要通过列出人事组织列表,可随时查看,对于新添加的人员。
系统会自动为人员创建一个所有可见的目录。
在人事管理功能中用户可以选择搜索人员操作,该操作界面使用纯JavaScript实现对搜索选项的设置,使用HibernateQBC方式实现文件的搜索功能。
QBC查询方式是在执行查询前首先设置一个查询容器Criteria,该系统首先在JSP页面列出用户可以使用的一些查询条件,待用户填写完毕查询条件并点击立即搜索按钮后,在控制器Acition里逐项判断用户是否选取了该查询条件,如果已选取则向查询容器Criteria里写入一条查询规则,待所有规则加入完毕后执行数据库查询操作并把该查询容器Criteria作为参数传递过去,在DAO层根据接收到的查询容器动态地生成SQL语句执行查询操作,并将查询结果返回给用户以完成该次查询。
对于系统可以上传一些文件信息,在上传的过程中为了让用户更能直观地了解上传进度系统加入了进度条的显示,采用DWR技术。
4.4系统涉及内容
4.4.1输入项
其输入项很多,包括商品的各种信息,主要包括以下内容。
进货ID(OrderID):
整数(唯一标识符)
进货名称(0rderName):
变长字符串
条形码(Sortcode):
进货数量(OrderData):
整数
进货日期(OrderDate):
日期型
制造商(ProductName):
供应商(CustomerName):
类别号(Type_ID):
4.4.2输出项
商品已进货信息(同输入项)。
4.4.3设计方法(算法)
使用的是顺序的数据结构,对于商品信息也使用的是基础的计算方式。
包含的具体设计思想如下:
1)添加按钮设计(cmdAdd):
在添加时,添加、修改和删除按钮处于不可用状态,保存和取消按钮处于可用状态,每个文本框都对应了数据库中的相应属性列。
2)修改按钮设计(cmdEdit):
在修改时,先判断数据库中是否有数据,如果有,则添加、修改和删除按钮处于不可用状态,保存和取消按钮处于可用状态,每个文本框都对应了数据库中的相应属性列;
如果没有,则显示“没有要修改的数据”。
3)删除按钮设计(cmdDel):
在删除时,先判断数据库中的数据总数是否大于零,如果是,则首先提示一下,然后添加、修改、删除按钮处于不可用状态,保存和取消按钮处于可用状态,然后数据库刷新;
如果不是,则显示“没有可删除的数据”。
4)保存按钮设计(cmdSave):
首先要判断是否每个文本框都填写了数据,然后将数据库更新,将保存按钮设为不可用,将取消、增加、修改和删除按钮设置为可用,之后再将数据保存进数据库中。
5)取消按钮设计(cmdCancel):
在取消时,添加、修改和删除按钮处于可用状态,保存和取消按钮处于不可用状态,并将每个文本框置空。
5结束语
近年来,计算机技术日趋成熟,数据库技术不断发展,管理信息系统的应用已延伸到社会的各个领域。
结合管理信息系统的开发方法及步骤,以此为理论基础,开发出一个小型的信息管理系统——超市管理系统。
超
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 web 超市 管理 系统 设计 实现