eboard仓储管理系统的设计与实现【开题报告+文献综述+毕业论文】

eboard仓储管理系统的设计与实现【开题报告+文献综述+毕业论文】

ID:448758

大小:339.05 KB

页数:0页

时间:2017-08-03

上传者:U-944
eboard仓储管理系统的设计与实现【开题报告+文献综述+毕业论文】_第页
预览图正在加载中,预计需要20秒,请耐心等待
资源描述:

《eboard仓储管理系统的设计与实现【开题报告+文献综述+毕业论文】》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

本科毕业论文系列开题报告eboard仓储管理系统的设计与实现一、选题的背景和意义选题的背景:仓储在企业的整个供应链中起着至关重要的作用,如果不能保证正确的进货和库存控制及发货,将会导致管理费用的增加,服务质量难以得到保证,从而影响企业的竞争力。传统简单、静态的仓储管理已无法保证企业各种资源的高效利用。如今的仓库作业和库存控制作业已十分复杂化多样化,仅靠人工记忆和手工录入,不但费时费力,而且容易出错,给企业带来巨大损失。国内外建筑模板技术发展情况国外发达国家、特别是欧美地区对建筑模板技术很重视,新型建筑模板及其支撑体系生产技术和应用发展很快,目前已达到相当高的水平:他们采用品质优良、耐久性好的模具材料,应用工业化流水线生产,加工精度高的成套模具;模板及其支撑体系是采用模数化、装配化的工具式体系;有的国家在隧道、高耸建筑施工,正在发展自动升降,快速拆装的工艺。选题的意义:我所研究的是一个关于建筑模板小公司仓库管理系统。主要是关于产品的对整个入库、出库等各个环节的规范化作业等功能。这样可以更好的查看产品信息,统计,更好的节约资源。可以进行货物管理,可以增加货物类别,增加货物种类,对货物基本信息可以进行编辑。我采用struts框架来实现系统功能。其中MVC模式分为模型(Model)、视图(View)和控制器(Controller)三部分,在理论上实现了页面显示与业务逻辑分离,具有模块独立、流程清晰、设计灵活和易于扩展等特点。实践证明,MVC模式能够有效提高企业级Web应用的开发效率,并显著增强系统代码重用性与可靠性。基于MVC模式的J2EE多层Web框架己经成为目前分布式企业级应用的主流架构之一。二、研究目标与主要内容(含论文提纲)12 研究目标:开发一个基于Struts架构的仓储管理系统。其中包括员工管理模块、入库管理模块、出库管理模块、类别管理模块,以及对其相应的进行增、删、改、查等功能。主要内容:引言一、eboard系统的开发(一)开发工具的选择(二)开发语言的选择(三)开发模式——MVC(四)开发架构——Struts二、系统的设计(一)系统设计(二)系统数据库的设计(三)系统的功能模块划分(四)系统的页面设计三、eboard系统优化实现——MVC模型的应用(一)MVC模型的应用——模型、视图、控制器(二)使用MVC的优缺点四、解决乱码问题五、系统实现中安全问题(一)页面显示路径(二)权限控制总结注释参考文献致谢三、拟采取的研究方法、研究手段及技术路线、实验方案等研究方法与研究手段:我是采用网络调查、文献检索等方法来进行论文研究。使用所学过了javaweb技术开发整个系统,采用struts框架来作为整个系统的框架,使用mysql来实现系统数据库设计,使用myeclipse工具来实现代码编写。12 技术路线:研究框架形成使用struts框架来实现网站功能电脑环境的配置Java、myeclipse、dreamweaver数据库的设计使用mysql来实现设计。网站后台的实现主要功能:员工管理、类别管理、入库管理、出库管理理论分析分析仓库行业发展前景总结对网站的优缺点的总结对于国内发展状况进行阐述对于国外发展状况进行阐述文献收集理论准备四、参考文献[1]唐建清,邹国霞.JavaWeb开发的环境配置[J].计算机技术及应用.2006年第3期[2]辛立伟,王水萍.JavaWeb开发框架-Struts框架[J].福建电脑.2006年第9期[3]汪健峰.Struts结构的JavaWeb开发中实现文件上传与下载[J].计算机系统应用.2006年第9期12 [4]林青.Struts框架中的设备模式分析及扩展[J].宁波大红鹰职业技术学院学报.2006年6月[5]方方.Web应用程序开发中的Struts框架[J].计算机与信息技术.[6]金涛,白月飞.基于J2EE的Struts框架技术的应用与研究[J][7]鲍嘉鑫.基于MVC+DAO设计模式的Struts框架应用[J].科技情报开发与经济.2009年第19卷第7期[8]牛大伟,张晓琳,吴志明.基于MVC模式的Struts框架的教师工作量管理系统[J].内江师范学院学报.第25卷第4期[9]潘亚,路晓亚.基于MVC模式的struts框架的研究与应用[J].计算机与网络[10]董袁泉.基于MVC模式的Struts框架研究与应用[J].软件开发与设计[11]顼聪,王雅轩.基于MVC设计模式Struts框架的应用方法[J].技术应用[12]欧阳谦,蒋泽军,王丽芳.基于Struts框架的多文件上传组件设计和研究[J].计算机工程与科学.2009年第31卷第1期[13]李德启,吴天兰.基于Struts框架实现MVC设计模式的分析与研究[J].上饶师范学院学报.第29卷第3期2009年6月[14]DeeptiBhardwaj,AModel-ControllerInterfaceforStruts-BasedWebApplications[J].TheFacultyoftheDepartmentofComputerScienceSanJoséStateUniversity.Spring2010[15]PraveenGupta,MVCDesignPatternforthemultiframeworkdistributedapplicationsusingXML,springandstrutsframework[J].Govt.MahilaEngineeringCollegeAjmer,Rajasthan,India.ComputerScienceandEngineeringVol.02,No.04,2010.五、研究的整体方案与工作进度安排(内容、步骤、时间)1、软件环境:操作系统:MicrosoftWindows7应用软件:MacromediaDreamweaver8、MyEclipse8.0、MySQL、JDK2、硬件环境:win7系统计算机一台3、进度安排:(1)12.15~1.10明确课题任务,阅读相关文献,完成外文翻译、文献综述。(2)1.11~1.20熟悉资料,撰写开题报告、拟定设计方案。(3)1.20~2.10根据方案进入实质性开发。(4)2.11~2.1812 根据实际进展调整方案,进一步开发,并完成调试。同时完成论文初稿。(5)3.1~3.10论文中期检查。(6)3.11~4.20论文修改、定稿。(7)5.14论文答辩。六、研究的主要特点及创新点1.采用先进的技术:MVC模型、Struts架构。2.提升安全性:数据库安全(采用数据链接池),12 毕业论文文献综述电子商务eboard仓储管理系统的设计与实现一、发展现状仓储在企业的整个供应链中起着至关重要的作用,如果不能保证正确的进货和库存控制及发货,将会导致管理费用的增加,服务质量难以得到保证,从而影响企业的竞争力。传统简单、静态的仓储管理已无法保证企业各种资源的高效利用。如今的仓库作业和库存控制作业已十分复杂化多样化,仅靠人工记忆和手工录入,不但费时费力,而且容易出错,给企业带来巨大损失。我所研究的是一个关于建筑模板小公司仓库管理系统。主要是关于产品的对整个入库、出库等各个环节的规范化作业等功能。当今时代是告诉发展的信息技术时代,各行各业都离不开对信息的处理,也因此计算机被广泛应用于各种信息管理系统。国内外建筑模板技术发展情况国外发达国家、特别是欧美地区对建筑模板技术很重视,新型建筑模板及其支撑体系生产技术和应用发展很快,目前已达到相当高的水平:他们采用品质优良、耐久性好的模具材料,应用工业化流水线生产,加工精度高的成套模具;模板及其支撑体系是采用模数化、装配化的工具式体系;有的国家在隧道、高耸建筑施工,正在发展自动升降,快速拆装的工艺。这样建立一个管理系统可以更好的查看产品信息,统计,更好的节约资源。可以进行货物管理,可以增加货物类别,增加货物种类,对货物基本信息可以进行编辑。二、研究成果基于Struts的开发模型,使用Struts的组件,我们会将原有Servlet,JSP对象组织到构架中。比如说Struts的应用程序中的View部分仍然会使用JSP,不同的是Struts会借助ActionForm将表单中的字段与相应的表单字段的Set,Get方法相关联。这样就不需要通过request.getParameter()而是从Struts的请求流中提取字段变量的值。ActionForm的主要功能就是为Action12 的操作提供与表单相映射的数据(如果在用户指定的情况下,还包括对数据进行校验)。在实现页面转向方面,可以用JSP的response.sendRedirect(),或者是Servlet的request.Dispatch(),方法是多种多样的,比较灵活。但Struts只通过ActionForward的mapping.findForward(key)就可以转向不同的页面了。Struts是一种优秀的J2EEMVC架构方式。当然还可以利用taglib获得可重用代码和抽象Java代码,利用ActionServlet配合Struts-config.xml实现对整个系统导航。Struts是Apache组织的一个开源码项目,是MVC设计模式的一个优秀实现。其包含3类组件:控制器组件、模型组件、视图组件,控制器组件包括ActionServlet、自定义Action,模型组件包括定义和实现业务逻辑的接口和类,视图组件包括JSP页面、ActionForm和Struts标签。ActionServlet是Struts最核心的组件。在Web容器启动时,ActionServlet被初始化,加载struts-config.xml配置文件。Struts处理请求的过程如下:(1)客户端浏览器发送请求到ActionServlet,ActionServlet根据请求的路径和struts-config.xml的配置信息找到对应的ActionBean和FormBean。(2)在确定将要调用的ActionBean和对应的FormBean后,就将请求中的值填充到FormBean中。在调用Action的execute方法之前,ActionServlet还要准备好ActionMapping参数,ActionMapping中包含了该Action的配置信息。(3)然后struts将请求分发至相应的ActionBean处理,ActionMapping参数,ActionForm参数,request和response都作为参数传给处理请求的ActionBean的execute方法。(4)Action调用业务逻辑方法,得到返回值,并返回ActionForward对象。(5)控制权重新回到ActionServlet,ActionServlet根据Action返回的ActionForward对象转发到相应的jsp。(6)处理结果返回给浏览器。我所要设计的网站打算是用Struts框架,Struts有一组相互协作的类、Serlvet以及JspTagLib组成。基于Struts构架的web应用程序基本上符合JSPModel2的设计标准,可以说是MVC设计模式的一种变化类型。根据上面对framework的描述,我们很容易理解为什么说Struts是一个webframwork12 ,而不仅仅是一些标记库的组合。但Struts也包含了丰富的标记库和独立于该框架工作的实用程序类。三、发展趋势随着社会认计算机网络的提高与发展,人们会愈来愈多的关注网络技术,使用电脑。但是现在中国仓储式经营方式的理论研究滞后。仓储式经营实践的发展还缺乏科学的理论指导,尤其是缺乏针对中国的国情,开展仓储式经营方式的理论研究。要在充分借鉴和吸收国外仓储式经营方式经验的基础上,结合中国的国情,予以创新发展,以及在实践中摸索出一套具有中国特色的仓储式经营模式。仓储式商场在中国出现和发展的客观必然性,面向大众化经营,既能满足广大消费阶层的需要,又可以节省人、财、物力,符合中国现阶段国情的客观要求。由此可以肯定,仓储式商场在中国无疑有着广阔的发展前景。在我实习的中我发现他们在仓库里还是使用纸质、手写来记入产品入库、收货、发货、送货等各个环节,这样浪费是时间有浪费资源,又不好管理。所以我就想设计个网站好管理这类情况。可以提高工作效率,方便查询。四、系统可能存在的问题1、由于系统是刚开始投入使用,可能会存在系统漏洞。为了保证数据的安全规范,必须要时刻注意新系统的运行情况,需要随时注意运行情况。2、网络安全问题网络安全性是必须考虑的。密码泄露,而丢失数据。所以,管理员设置一个有效的密码,以及使用一个严密的管理密码方案是至关重要的。我打算使用md5加密,同时,系统受到病毒、木马、蠕虫的攻击,导致数据丢失、被恶意篡改、数据被删等,这也是一个网络安全隐患。五、总结采用struts+mysql的开发模式,来开发仓库管理新的实现。系统页面用javascript开发设计,数据库则采用mysql,小型数据库不用占很多内存,运行的速度比较快。参考文献[1]唐建清,邹国霞.JavaWeb开发的环境配置[J].计算机技术及应用.200612 年第3期[2]辛立伟,王水萍.JavaWeb开发框架-Struts框架[J].福建电脑.2006年第9期[3]汪健峰.Struts结构的JavaWeb开发中实现文件上传与下载[J].计算机系统应用.2006年第9期[4]林青.Struts框架中的设备模式分析及扩展[J].宁波大红鹰职业技术学院学报.2006年6月[5]方方.Web应用程序开发中的Struts框架[J].计算机与信息技术.[6]金涛,白月飞.基于J2EE的Struts框架技术的应用与研究[J][7]鲍嘉鑫.基于MVC+DAO设计模式的Struts框架应用[J].科技情报开发与经济.2009年第19卷第7期[8]牛大伟,张晓琳,吴志明.基于MVC模式的Struts框架的教师工作量管理系统[J].内江师范学院学报.第25卷第4期[9]潘亚,路晓亚.基于MVC模式的struts框架的研究与应用[J].计算机与网络[10]董袁泉.基于MVC模式的Struts框架研究与应用[J].软件开发与设计[11]顼聪,王雅轩.基于MVC设计模式Struts框架的应用方法[J].技术应用[12]欧阳谦,蒋泽军,王丽芳.基于Struts框架的多文件上传组件设计和研究[J].计算机工程与科学.2009年第31卷第1期[13]李德启,吴天兰.基于Struts框架实现MVC设计模式的分析与研究[J].上饶师范学院学报.第29卷第3期2009年6月[14]DeeptiBhardwaj,AModel-ControllerInterfaceforStruts-BasedWebApplications[J].TheFacultyoftheDepartmentofComputerScienceSanJoséStateUniversity.Spring2010[15]PraveenGupta,MVCDesignPatternforthemultiframeworkdistributedapplicationsusingXML,springandstrutsframework[J].Govt.MahilaEngineeringCollegeAjmer,Rajasthan,India.ComputerScienceandEngineeringVol.02,No.04,2010.12 本科毕业论文(20__届)eboard仓储管理系统的设计与实现摘要:随着信息技术的不断发展,各行各业也越来越离不开现代化技术,不过一些小型企业还是不能够运用,为了能够更好的促进发展,所以使用struts框架、mvc模式来设计一个小型仓库服务功能的系统,文中以出库管理模块为例,详细说明了其实现的过程和方法。关键词:struts框架;mvc模式;仓库12 TheDesignandimplementationofEboardManagewarehousesystemAbstract:Asinformationtechnologycontinuestoevolve,businessesareincreasinglyinseparablefromthemoderntechnology,butsomesmallbusinesscannotbeused,inordertobetterpromotethedevelopment,sousingstrutsframe,mvcmodeltodesignasmallstoragesitestoservices,thetextitemstothemanagementoperationstokeymodules,supplementedbydetaileddescriptionofthecodeforitsrealizationandprocesses.Keywords:struts;warehouse;mvcmodel12 目录引言1一、eboard系统的开发1(一)开发工具的选择1(二)开发语言的选择2(三)开发模式——MVC2(四)开发架构——Struts2二、系统的设计3(一)系统设计3(二)系统数据库的设计3(三)系统的功能模块划分6(四)系统的页面设计8三、eboard系统优化实现——MVC模型的应用10(一)MVC模型的应用——模型、视图、控制器10(二)使用MVC的优缺点15四、解决乱码问题16五、系统实现中安全问题18(一)页面显示路径18(二)权限控制18总结19注释19参考文献19致谢2112 eboard系统是一个关于建筑模板小公司仓库管理系统。主要是关于产品的对整个入库、出库、等各个环节的规范化作业等功能。当今时代是告诉发展的信息技术时代,各行各业都离不开对信息的处理,也因此计算机被广泛应用于各种信息管理系统。国内外建筑模板技术发展情况国外发达国家、特别是欧美地区对建筑模板技术很重视,新型建筑模板及其支撑体系生产技术和应用发展很快,目前已达到相当高的水平:他们采用品质优良、耐久性好的模具材料,应用工业化流水线生产,加工精度高的成套模具;模板及其支撑体系是采用模数化、装配化的工具式体系;有的国家在隧道、高耸建筑施工,正在发展自动升降,快速拆装的工艺。一、eboard系统的开发(一)开发工具的选择1、Windows7的操作系统这是主要的软件,此系统开发过程在除了文档的编写,其它的工作都在操作系统中进行,它是现在所有初级学者的操作系统工具,在开发过程中担任重要的任务。2、MacromediaDreamweaver8页面编辑器MacromediaDreamweaver是个由Macromedia公司开发的著名网站开发工具,它使用所见即所得的界面,亦有HTML编辑的功能。它现在有Mac和Windows系统的版本。一个可视化的网页设计和网站管理工具,支持最新的Web技术,包含HTML检查、HTML格式控制、HTML格式化选项、HomeSite/BBEdit捆绑、可视化网页设计、图像编辑、全局查找替换、全FTP功能、处理Flash和Shockwave等富媒体格式和动态HTML、基于团队的Web创作。在编辑上可以选择可视化方式或者喜欢的源码编辑方式。Dreamweaver自MX版本开始,使用了Opera的排版引擎“Presto”作为网页预览。①3、Mysql数据库开发软件MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司。MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。②4、Myeclipse8.0开源软件MyEclipse企业级工作平台(MyEclipseEnterpriseWorkbench,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSF,CSS,Javascript,SQL,Hibernate。5、其他网页设计软件MacromediaFlash8.0、PhotoshopCS2、Macromedia32 Firewoks8.0等。③(二)开发语言的选择1、JAVAJava是一种简单的,跨平台的,面向对象的,分布式的,解释的,健壮的安全的,结构的中立的,可移植的,性能很优异的多线程的,动态的语言。Java以其强安全性、平台无关性、硬件结构无关性、语言简洁同时面向对象,在网络编程语言中占据无可比拟的优势。2、JSP为了把表现层presentation从请求处理requestprocessing和数据存储datastorage中分离开来,则在JSP文件中使用MVC模式。规范的Servlet或者分离的JSP文件用于处理请求。当请求处理完后,控制权交给一个只作为创建输出作用的JSP页。(三)开发模式——MVCMVC模式将J2EE表示层和业务逻辑层划分为模型(Model)、视图(View)和控制器(Controller)三部分,在理论上实现了页面显示与业务逻辑分离,具有模块独立、流程清晰、设计灵活和易于扩展等特点。实践证明,MVC模式能够有效提高企业级Web应用的开发效率,并显著增强系统代码重用性与可靠性。基于MVC模式的JZEE多层Web框架己经成为目前分布式企业级应用的主流架构之一。MVC模式的适用范围很广,这与其具有众多优点密不可分,具体包括:结构清晰,重用性、灵活性和可配置性,功能强大的用户界面,模块的有效性和可维护性,有利于软件工程化管理等优点。(四)开发架构——Struts1、Struts的基本原理Struts是一个开源的、基于MVC模式的JavaWeb框架。它定义了自己的标签库来实现自己的视图层,创建了一个内在的Servlet,叫ActionServlet,作为它的控制器,建立了一个叫做Action类的对象实现业务逻辑。视图组件与业务逻辑组件的关系在一个叫做struts-config.xml的配置文件中声明。当Struts应用程序启动时,它首先从struts-config.xml文件中读取相关信息。根据这些信息,它的控制器ActionServlet可以知道把视图中的请求转发给哪个业务逻辑组件处理。视图组件、控制器与业务逻辑组件之间没有代码上的联系,它们之间的关系在struts-config.xml中声明,这样就保证了Web应用程序的可移植性和可维护性,因而能够受到业界的认可,成为主流的JavaWeb应用框架。Struts的工作原理如图2-1所示:32 图1-1Struts的工作原理二、系统的设计(一)系统设计Eboard仓储管理系统是一个使用JSP语言开发应用程序,使用MVC模式来设计主要是方便仓库管理,记录,节省一些纸质材料。整个系统那个主要是针对实现员工管理、类别管理、产品入库、出库管理等进行一系列的操作,如对于入库管理进行产品信息存储,对已入库产品信息进行修改,删除一些无用的产品信息,查看已有产品的信息。(二)系统数据库的设计1、数据库逻辑结构设计本系统数据库主要采用myql数据库,系统数据库名为root。共含了4张表。管理员工的表:管理员{管理员序号、管理员姓名、管理员性别、管理员密码、管理员所在部门},当中的管理员序号是主键。管理产品类别的表:产品类别{产品类别序号、产品类别名称},其中产品类别序号为主键。产品入库表:产品入库{入库序号、产品类别序号、数量、单价、供应商、入库时间、操作人员、备注},其中入库号为主键,产品类别序号为外码。产品出库表:产品出库{出库序号、产品类别序号、数量、单价、折扣、总价、出库时间、操作人员、备注},其中出库序号为主键,产品类别序号为外码。2、数据库物理结构设计为了更好的是应用程序代码能够与数据库设计相结合,为了尽可能的减少数据冗余,我把表格设计如下:32 表2-1管理员工表(admin)的结构字段名称数据类型说明Empnumberint员工号(主键)usernamevarchar员工姓名Passwordvarchar登陆密码Sexvarchar员工性别departmentvarchar所在部门表2-2产品类别(prod_category)表结构字段名称数据类型说明category_idInt产品类别序号(主键)Prod_categoryvarchar产品类别名称表2-3产品入库(prod_enter)表结构字段名称数据类型说明indentnumberInt入库序号(主键)category_idInt产品类别序号quantityInt入库数量PriceDouble产品单价suppliervarchar供应商intimeInt入库时间operatorvarchar操作人员Beizhuvarchar备注表2-4产品出库(prod_sell)表结构字段名称数据类型说明sellnumberInt出库序号(主键)category_idInt产品类别序号quantityInt入库数量PriceDouble产品单价discountDouble折扣CountDouble总价OutrimeInt出库时间operatorvarchar操作人员32 Beizhuvarchar备注3、数据库的连接设计开发人员在大量使用java与数据库的项目开发过程中,逐渐的认识到所开发的java数据库应用系统中,建立数据库连接的这部分代码通常是整个应用系统的问题所在,建立数据库连接的熟读很多时候决定整个应用系统的运行速度,为了提高整个java数据库应用速度,于是出现了数据库连接池(connectionpool)。核心理论:是在内存中建立一个虚拟的容器,在这个容器中保存预先建立好的数据库连接对象,把这些连接对象分配给需要的程序使用,当连接对象使用完成后,不直接关闭连接,而是重新保存到容器中,供其他程序重复使用。我自己设计的数据连接池是把他封装到一个类中,要用时可以随时调用,其中useUnicode=true&characterEncoding=utf-8"是保存到数据库中的编码格式,是用来防止出现乱码问题,具体代码如下:publicclassBaseDao{privatestaticfinalStringdriverClass="com.mysql.jdbc.Driver"//保存驱动类的类名的变量privatestaticfinalStringurl="jdbc:mysql://localhost:3306/mysql??useUnicode=true&characterEncoding=utf-8";//保存连接数据库的URL地址的变量privatestaticfinalStringuid="root";//保存mysql登录用户名的变量privatestaticfinalStringpwd="mysql";保存mysql登录密码的变量publicConnectiongetConn(){Connectionconn=null;try{Class.forName(driverClass);//调用Class的forName方法加载驱动程序}catch(ClassNotFoundExceptione){e.printStackTrace();}try{conn=DriverManager.getConnection(url,uid,pwd);//调用getConnection()方法构造Connection对象的一个实例conn}catch(SQLExceptione){32 e.printStackTrace();}returnconn;}publicvoidcloseAll(ResultSetrs,PreparedStatementpstms,Connectionconn)//关闭ResultSet、pstms、conn{if(rs!=null){try{rs.close();}catch(SQLExceptione){e.printStackTrace();}}if(pstms!=null){try{pstms.close();}catch(SQLExceptione){e.printStackTrace();}}if(conn!=null){try{conn.close();}catch(SQLExceptione){e.printStackTrace();}}}(三)系统的功能模块划分32 Eboard主要实现员工管理、类别管理、产品入库、出库管理等的添、删、改、查功能,系统功能模块结构如图3-1所示:eboard仓储管理系统后台管理电脑环境的配置Java、myeclipse、dreamweaver后台登陆功能出库管理入库管理类别管理员工管理、对于国内发展状况进行阐述出库信息修给出库信息删除出库信息添加出库信息查询入库信息删除入库信息添加入库信息修改入库信息查询员工信息修改员工信息添加员工信息查询类别信息删除类别信息修改类别信息添加类别信息查询员工信息删除图2-1系统模块结构图1、员工管理模块在我的设想中有两个功能。其一是登陆所使用的用户名和密码的用户,他们有权操作后台信息的权利;一种是纯粹存储用户资料,没有密码,就是无法登陆的用户信息。员工管理模块主要是那部分有权利操作后台信息的管理员对员工的信息进行查询、添加、修改、删除等功能。2、类别管理主要是对于入库、出库产品的名称进行进行查询、添加、修改、删除操作,在类别中添加后会自动的在入库、出库管理中添加到下拉列表中,在类别中修改、删除等操作也会自动的在入库、出库管理中的下拉列表中实现相应操作。32 3、入库管理主要是对需要入库产品的处理,主要包含对入库序号、入库产品名称、数量、供应商、单价、入库时间等进行操作,还可以对已保存的入库信息进行查询、修改、删除功能。4、出库管理出库管理跟入库管理基本一致,也是对出库出去的信息进行操作,例如:出库订单号、出库时间、出库数量、销售折扣、销售总价等等。也可以对其进行修改、查询、删除等多项功能。(四)系统的页面设计首先要提的是登陆页面,用来管理员来登陆后台进行相关操作,如下图:图2-2登陆界面图登陆后直接进入主页,主页使用dreamweaver工具里的框架集—上方固定,左侧嵌套,这样方便与使网页结构清晰,易于维护跟更新,使用者浏览器不需要为每个页面重新加载。系统主页如下图:32 图2-3系统主页界面图在整个系统总体功能的设计过程中,我们采用了软件工程中自顶向下的方法。按照系统的功能将相对复杂的系统划分为各个较为简单的功能模块,这样的过程也是从抽象到具体的过程,在模块划分的过程中因为使用了框架,所以使各个模块相互独立,既便于实现又易于维护。系统的框架图如图3-4所示:32 登陆页面login.jsp后台主页index.jsp出库管理Getprodsell.jsp入库管理Getprodenter.jsp类别管理Catelist.jsp员工管理Emp_getmess.jspupdateout.jspQueryprodsell.jspAddprodsell.jspupdatequerenter.jspQueryenter.jspAddproduct.jspupcate.jspaddcate.jspCatelist.jspEmp_query.jspUpdateemp.jspAddemp.jspGetqueryout.jspGetqueryenter.jspEmp_message.jsp图2-4系统框架图三、eboard系统优化实现——MVC模型的应用(一)MVC模型的应用——模型、视图、控制器采用MVC模式——模型(Model)、视图(View)和控制器(Controller),Struts架构,其内容主要以ActionServlet+Action+ActionForm形式展现.32 MVC模式分为模型(Model)、视图(View)和控制器(Controller)三部分,在理论上实现了页面显示与业务逻辑分离,具有模块独立、流程清晰、设计灵活和易于扩展等特点。实践证明,MVC模式能够有效提高企业级Web应用的开发效率,并显著增强系统代码重用性与可靠性。基于MVC模式的J2EE多层Web框架己经成为目前分布式企业级应用的主流架构之一。下面我以我所做系统的出库管理模块为列来说明mvc,具体操作如下:1、struts-config.xml文件主要作用是是前台显示层,逻辑处理层和数据保存容器层,相互联系协调的控制器。各个层都是通过控制器struts-config来进行业务处理的。具体代码如下:2、实体层模型主要是表示一个系统的状态和业务逻辑。在Struts中,系统的状态主要由ActiomFormBean体现,对于业务逻辑通常由JavaBean或EJB组件来实现。具体包含entity、dao、service、actionform等层,也可以说是模型层,主要封装实体与实体的get、set方法,还有是具体的实现方法,存储页面数据,这样方便查找漏洞和修改,下面我将分别叙述几个具体实现:(1)entity层中的ProdOut.java,在下列代码中省略了get、set方法。packagecom.wgh.entity;publicclassProdOut{privateintsellnumber;//出库序号privateintcategoryid;//出库产品类型号privateintquantity;//出库的数量32 privatedoubleprice;//出库产品单价privateintouttime;//出库时间privateDoublediscount;//产品折扣privateDoublecount;//出库总价privateStringoperator;//经办人privateStringbeizhu;//备注(2)dao层的proOutDao.java和prodOutDaoImpl.javaproOutDao.java是一个interface接口,而prodOutDaoImpl.java是接口的具体实现,下面是具体实现代码:packagecom.wgh.Login.Dao;importjava.util.List;importcom.wgh.entity.ProdCategory;importcom.wgh.entity.ProdOut;publicinterfaceprodOutDao{publicProdCategoryselectByCategoryid(intid);//根据产品号选择产品publicListselectAll();//选择全部产品publicintinsertProdOut(ProdOute);//插入出库信息publicListselectSell();//选择出库产品publicProdOutselectProdSellById(intid);//根据出库号查看出库信息publicintupdaOut(ProdOute);//修改出库信息publicintdeleteProdOutById(intid);//根据出库号删除出库信息}(3)service层其中也是一个interface接口-prodOutService.java,另一个是接口的具体实现-prodOutServiceImpl.java。这个层主要作用是方便管理,如果在逻辑需要修改时就不用改动其他,只要修改dao层里的东西就可以。(4)actionform层的prodOutForm.java这层非常重要,是用来存储页面提交的数据的,其中是具体的属性和属性的get、set方法组成,具体代码如下(get、set方法):packagecom.wgh.struts.form;importorg.apache.struts.action.ActionForm;publicclassprodOutFormextendsActionForm{privateintid;privateintsellnumber;privateintcategoryname;32 privateintquantity;privatedoubleprice;privateintouttime;privateDoublediscount;privateDoublecount;privateStringoperator;privateStringbeizhu;3、控制层在struts框架中的控制层要属于action层,org.apache.struts.action.ActionServlet类是Struts框架的核心控制器组件,所有的用户请求都先有ActionServlet来处理,然后再由ActionServlet把请求转发给其他组件。Struts框架只允许在一个应用中配置一个ActionServlet类,在应用的生命周期中,仅创建ActionServlet类的一个实例,这个ActionServlet实例可以同时响应多个用户请求。在定义web.xml文件,是将所有以do为后缀的请求,都转入控制器进行分派。web.xml文件的示例代码如下:action*.dologin.jspaction就是具体控制逻辑实现,收集页面数据,实现页面跳转(mapping.forward),就以处理addprodsell.jsp为列,具体的代码如下:publicclassprodOutActionextendsDispatchAction{privateprodOutDaoImpldao=newprodOutDaoImpl();publicActionForwardinsert(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse){response.setCharacterEncoding("utf-8");prodOutFormoutForm=(prodOutForm)form;intsellnumber=outForm.getSellnumber();//获取页面数据intname=outForm.getCategoryname();//获取页面数据intquantity=outForm.getQuantity();//获取页面数据doubleprice=outForm.getPrice();//获取页面数据doublediscount=outForm.getDiscount();//获取页面数据doublecount=outForm.getCount();//获取页面数据intouttime=outForm.getOuttime();//获取页面数据Stringoperator=outForm.getOperator();//获取页面数据Stringbeizhu=outForm.getBeizhu();//获取页面数据ProdOutee=newProdOut();32 ee.setSellnumber(sellnumber);ee.setCategoryid(name);ee.setQuantity(quantity);ee.setPrice(price);ee.setDiscount(discount);ee.setCount(count);ee.setOuttime(outtime);ee.setOperator(operator);ee.setBeizhu(beizhu);intresult=dao.insertProdOut(ee);//把获取的信息插入数据库中PrintWriterout=null;try{out=response.getWriter();}catch(IOExceptione){e.printStackTrace();}if(result==0){out.println("alert('操作失败!');history.go(-1);");//信息经过审核跳出窗口提示信息}if(result==2){out.println("alert('已存在存在');history.go(-1);");//信息经过审核跳出窗口提示信息}if(result==1){out.println("alert('添加成功!');location.href='sell.do?method=queryAll';");//信息经过审核跳出窗口提示信息}returnnull;}4、视图层也可以理解为jsp页面,在这里我以出库模块的getprodsell.jsp为列,其中在实现list循环输出时使用了logic标签,具体代码如下:出库单号产品类别型号数量32 单价折扣金额入出库时间经办人操作

(二)使用MVC的优缺点1、MVC优点 大部分用过程语言比如ASP、PHP开发出来的Web应用,初始的开发模板就是混合层的数据编程。例如,直接向数据库发送请求并用HTML显示,开发速度往往比较快,但由于数据页面的分离不是很直接,因而很难体现出业务模型的样子或者模型的重用性。产品设计弹性力度很小,很难满足用户的变化性需求。MVC要求对应用分层,虽然要花费额外的工作,但产品的结构清晰,产品的应用通过模型可以得到更好地体现。 首先,最重要的是应该有多个视图对应一个模型的能力。在目前用户需求的快速变化下,可能有多种方式访问应用的要求。按MVC设计模式,一个模型以及多个视图即可解决问题。这样减少了代码的复制,即减少了代码的维护量,一旦模型发生改变,也易于维护。其次,由于模型返回的数据不带任何显示格式,因而这些模型也可直接应用于接口的使用。 再次,由于一个应用被分离为三层,因此有时改变其中的一层就能满足应用的改变。一个应用的业务流程或者业务规则的改变只需改动MVC的模型层。 控制层的概念也很有效,由于它把不同的模型和不同的视图组合在一起完成不同的请求,因此,控制层可以说是包含了用户请求权限的概念。32  最后,它还有利于软件工程化管理。由于不同的层各司其职,每一层不同的应用具有某些相同的特征,有利于通过工程化、工具化产生管理程序代码。2、MVC的不足④(1)增加了系统结构和实现的复杂性。对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。(2)视图与控制器间的过于紧密的连接。视图与控制器是相互分离,但确实联系紧密的部件,视图没有控制器的存在,其应用是很有限的,反之亦然,这样就妨碍了他们的独立重用。(3)视图对模型数据的低效率访问。依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据。对未变化数据的不必要的频繁访问,也将损害操作性能。(4)目前,一般高级的界面工具或构造器不支持MVC架构。改造这些工具以适应MVC需要和建立分离的部件的代价是很高的,从而造成使用MVC的困难。四、解决乱码问题在刚开始做系统是总是出现乱码问题,发现主要是三个方面的原因,如下:1、页面编码问题刚开始没有注意,在使用dreamweaver是使用默认的编码格式gb2312,例如:<%@pagecontentType="text/html;charset=gb2312"language="java"import="java.sql.*"errorPage="gb2312"%>,后来发现要把gb2312改成utf-8,这样页面显示就没问题了。2、表单使用post页面提交是出现乱码我用了两个方法来改进这一情况。一是对于表单提交我写了一个过滤器,过滤器在用户提交的数据被处理之前进行调用,这样可以改变编码方式。另一种是是ActionServlet里的每一方法里都些上response.setCharacterEncoding("utf-8")来处理。下面是我写的过滤器代码:importjava.io.IOException;importjavax.servlet.Filter;importjavax.servlet.FilterChain;importjavax.servlet.FilterConfig;importjavax.servlet.ServletException;importjavax.servlet.ServletRequest;importjavax.servlet.ServletResponse;publicclassCharsetEncodingFilterimplementsFilter{privateStringencoding=null;32 privatebooleanignore=true;publicvoiddestroy(){encoding=null;}publicvoiddoFilter(ServletRequestrequest,ServletResponseresponse,FilterChainchain)throwsIOException,ServletException{if(ignore||request.getCharacterEncoding()==null){Stringencoding=selectEncoding(request);if(encoding!=null)request.setCharacterEncoding(encoding);}chain.doFilter(request,response);}publicvoidinit(FilterConfigfilterConfig)throwsServletException{this.encoding=filterConfig.getInitParameter("encoding");Stringvalue=filterConfig.getInitParameter("ignore");if(value==null)this.ignore=true;elseif(value.equalsIgnoreCase("true"))this.ignore=true;elseif(value.equalsIgnoreCase("yes"))this.ignore=true;elsethis.ignore=false;}publicStringselectEncoding(ServletRequestrequest){return(this.encoding);}}在web.xml里的配置如下:CharsetEncodingFilter32 com.wgh.DB.CharsetEncodingFilterencodingutf-8CharsetEncodingFilter*3、数据库中出现乱码这里会使插入数据库的中文出现乱码,或者读出显示是出现乱码,解决方法很简单,就是在设计数据库连接时在连接字符串中编码字符集,Stringurl="jdbc:mysql://localhost:3306/mysql??useUnicode=true&characterEncoding=utf-8";五、系统实现中安全问题(一)页面显示路径使用struts框架实现页面跳转时,页面显示路径都是以.do结尾,让人无法了解系统网页的设计结构。(二)权限控制防止用户直接操作数据库的方法,在运行环境中,必须严格管理用户,因为是后台管理,所以在操作时只有管理员可以登录,虽然有员工管理功能,但是不是每个员工都能登录后台,也没有注册功能,如果要添加管理员,就一定要后台管理员到数据库中直接添加密码才可以登录。总结对于小型应用,使用MVC模式会带来额外的工作量,并且会增加应用复杂性,但对于eboard仓储管理系的开发业务逻辑复杂、存在大量用户界面的应用系统,尽管在最初构建MVC框架时会花费一定时间和精力,但MVC模式会大大提高后期软件的开发效率。这个系统主要是实现的入库、出库的增、删、改、查等功能的操作,由于时间比较匆忙,该系统只完成了主要功能的实现,在细节方面还需要在日后不断完善。32 注释:①http://baike.baidu.com/view/42180.htm#sub42180②http://baike.baidu.com/view/24816.htm#sub24816③http://baike.baidu.com/view/42723.htm#sub42723④http://wenku.baidu.com/view/569b0ba1b0717fd5360cdc60.html参考文献:[1]唐建清,邹国霞.JavaWeb开发的环境配置[J].计算机技术及应用.2006年第3期[2]辛立伟,王水萍.JavaWeb开发框架-Struts框架[J].福建电脑.2006年第9期[3]汪健峰.Struts结构的JavaWeb开发中实现文件上传与下载[J].计算机系统应用.2006年第9期[4]田东.Struts框架的工作原理[J].计算机与网络[5]林青.Struts框架中的设备模式分析及扩展[J].宁波大红鹰职业技术学院学报.2006年6月[6]方方.Web应用程序开发中的Struts框架[J].计算机与信息技术[7]魏钢.搭建JavaWeb开发环境[J].福建电脑.2009年第6期[8]金涛,白月飞.基于J2EE的Struts框架技术的应用与研究[J][9]鲍嘉鑫.基于MVC+DAO设计模式的Struts框架应用[J].科技情报开发与经济.2009年第19卷第7期[10]牛大伟,张晓琳,吴志明.基于MVC模式的Struts框架的教师工作量管理系统[J].内江师范学院学报.第25卷第4期[11]潘亚,路晓亚.基于MVC模式的struts框架的研究与应用[J].计算机与网络[12]董袁泉.基于MVC模式的Struts框架研究与应用[J].软件开发与设计[13]顼聪,王雅轩.基于MVC设计模式Struts框架的应用方法[J].技术应用[14]欧阳谦,蒋泽军,王丽芳.基于Struts框架的多文件上传组件设计和研究[J].计算机工程与科学.2009年第31卷第1期[15]李德启,吴天兰.基于Struts框架实现MVC设计模式的分析与研究[J].上饶师范学院学报.第29卷第3期2009年6月[16]刘伟,张利国.javaweb开发与实践[B].北京科海电子出版社[17]徐明华,丘加永.struts基础与案例开发详解[B].清华大学出版社[18]DeeptiBhardwaj,AModel-ControllerInterfaceforStruts-BasedWebApplications[J].TheFacultyoftheDepartmentofComputerScienceSanJoséStateUniversity.Spring2010[19]PraveenGupta,MVCDesignPatternforthemultiframeworkdistributedapplicationsusingXML,springandstrutsframework[J].Govt.MahilaEngineeringCollegeAjmer,Rajasthan,32 India.ComputerScienceandEngineeringVol.02,No.04,2010.32

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
最近更新
更多
大家都在看
近期热门
关闭