工业制造企业合同管理信息系统_第1页
工业制造企业合同管理信息系统_第2页
工业制造企业合同管理信息系统_第3页
工业制造企业合同管理信息系统_第4页
工业制造企业合同管理信息系统_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

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

文档简介

安徽工业大学毕业设计论文任务书课题名称工业制造企业合同管理信息系统毕业设计(论文)的主要内容1分析工业制造企业合同管理的业务需求,进行需求分析。2分析、给出工业制造企业的合同管理业务模型,设计软件系统的工作流程3根据需求分析和建立的业务模型完成课题的设计、编码、测试等工作。4完成毕业设计说明书毕业论文一份。5完成5000字的与设计内容有关的外文资料翻译。起止时间2008年5月3日至2008年5月23日共3周指导教师签字系主任签字院长签字填写说明“任务书“封面请用鼠标点中各栏目横线后将信息填入,字体设定为楷体GB2312、四号字;在填写毕业设计(论文)内容时字体设定为楷体GB2312、小四号字。摘要随着科技发展和社会进步,尤其是计算机大范围的普及,计算机应用逐渐由大规模科学计算的海量数据处理转向大规模的事务处理和对工作流的管理,这就产生了以台式计算机为核心,以数据库管理系统为开发环境的管理信息系统在大规模的事务处理和对工作流的管理等方面的应用,特别是在各种项目处理管理之中的应用日益收到人们的关注。近年来我国信息产业发展迅速,手工处理数据管理的方式已于时代不相适应,采用IT技术提高服务质量和管理水平势在必行。目前,计算机已经走进家庭用户,可以说是相当的普及了,而个人理财管理还不成熟。因此,家庭用户要提高其工作效率,改善其理财理念。这样,理财管理的信息化是势在必行的此系统是为现代化企业设计的一个工业制造企业合同管理系统,随着经济的发展,企业正向着大型化、规模化发展,而对于大中型企业,产品的多样化,所签仃的合同也随之急剧增加,在这种情况下单靠人工来处理,计算机这些合同不但显得力不从心,而且极容易出错。具体任务就是设计一个工业制造企业合同的数据管理系统,由计算机机来代替人工执行一系列诸如增加新合同、删除旧合同、修改、查询的操作。设计的指导思想是一切为了用户着想,界面要美观大方,操作尽量简单明了,而且作为一个实用的操作系统要有良好的容错性,在用户出现误操作时能够及时给出警告,以便用户及时地改正。计算机的资源是受到限制的,因此要充分利用JSP的功能,设计出功能强大的软件,同时要尽可能地减少对系统资源的占用。关键字合同管理,JSP,STURTS,HIBERNATEMYSQLABSTRACTDURINGTHISINFORMATIONTIMES,COMBININGCOMPUTERSWITHENTERPRISEUSUALEVENTSMANAGEMENTHASBECOMEANEMERGENTTASKTHATEVERYENTERPRISEMUSTACCOMPLISHASSOONASPOSSIBLETHEMISMANAGEMENTINFORMATIONSYSTEMOFCONTRACTSBASEDONSINGLELAYERSTRUCTUREMODE,WHICHISSUITABLEFORMEDIUMANDSMALLENTERPRISESISDEVELOPEDANDDESIGNEDINTHISARTICLETHENINTRODUCESSOFTWAREANDHARDWARECONFIGURATIONANDIMPLEMENTOFTHESYSTEMTHESYSTEMADOPTSECLIPSEANDMYECLIPSEASDEVELOPINGTOOL,MYSQLASDBMSDATABASEMANAGEMENTSYSTEMTHENMAKESACONCISEDESCRIPTIONOFPROGRAMMABLEENVIRONMENTANDDATABASETECHNIQUEOFVB60BASEDONFEASIBILITYANALYZINGANDSYSTEMDEMANDANALYZING,EMPHATICALLYEXPOUNDSDESIGNPROJECT、FUNCTIONALMODEL、INTERFACEDESIGNINGDATABASESYSTEMDESIGNING、SECURITYDESIGNINTHISPAPERTHEMISOFCONTRACTSSTRICTLYFOLLOWSTHEDESIGNPRINCIPLEOFSECURITY,ECONOMY,EFFICIENCYRELIABILITY,ANDEASYOPERATING,MAINTAININGANDEXPANDINGFINALLY,THEAUTHORMAKESASUBJECTIVEESTIMATEOFHISDESIGN,ANDPUTSFORWARDIMPROVINGMETHODSANDNEWPLANSTOOVERCOMETHESHORTCOMINGSOFTHEEXISTINGSYSTEMATTHEENDOFTHISARTICLE,REFERENCESARELISTEDKEYWORDSCONTRACTMANAGER,JSP,STURTS,HIBERNATEMYSQL目录摘要2目录41绪论62开发环境及开发工具的介绍721JDK,服务器,数据库的安装与配置7211JDKTOMCAT服务器安装与配置7212MYSQL的安装与配置822ECLIPSE和MYECLIPSE的安装与配置93开发技术介绍1131JAVA11311JAVA概述11312JAVA的特点1132SERVLET技术12321SERVLETS工作原理及概述12322特点及应用1333JSP技术介绍14331JSP概述14332JSP与SERVLET的比较14333JSP的工作原理14334JSP的环境配置1534STRUTS技术15341STRUTSMVC框架15342基于STRUTS的WEB应用的开发步骤16343STRUTS的TOKEN(令牌)机制1835HIBERNATE19351HIBERNATE数据持久化组件19352使用HIBERNATE编程步骤19353HIBERNATE控制的事务194系统设计2041需求分析20411功能分析20412角色分析21413数据库分析2243数据库设计2744系统总体设计28441设计思想28442框架设计29443系统界面要求30444系统模块的划分30445主要系统模块的具体实现311职工或管理员的登录模块312添加职工模块343职工或管理员的修改和删除模块384查询客户信息415合同信息的录入446合同信息的签署46453系统的测试485总结与体会49致谢50参考文献51附录一英文资料原文52附录二英文资料翻译611绪论随着信息时代到来,电脑信息管理技术越来越受到各企业的高度重视,逐渐成为企业在现代化发展中不可缺少的一部分在当今IT技术日新月异,而企业市场化进程加快的时刻,电脑信息管理技术几乎涉及到每一家优秀企业的整个经营活动对公司经营,效率甚至策略的变化都有直接而深远的影响工业制造合同管理系统是一套针对企业产品工业制造合同方面的电脑信息管理系统,它包括了企业在产品销售合同上的各方面内容而销售方面对一个企业在市场化经营中是重中之重的部分所以用电脑信息技术进行管理也是各企业的实际需求随着社会经济的迅速发展和科学技术的全面进步,计算机事业的飞速发展,以计算机与通信技术为基础的信息系统正处于蓬勃发展的时期,信息管理系统领域正在经历一场重大的变革。计算机在企业管理中应用的普及,利用计算机实现企业合同及文档资料的管理势在必行。随着企业间竞争的日益加强,企业对管理系统的要求也越来越高,工业制造企业合同管理系统基于商业运作,依据逻辑统筹运算思维,将销售业务的合同、销售发货、结款以及历史数据紧密衔接在一起。本系统结合企业实际的合同文档管理制度,经过实际的需求分析,采用功能强大的ECLIPSE作为开发工具而开发出来的企业合同管理系统。2开发环境及开发工具的介绍21JDK,服务器,数据库的安装与配置211JDKTOMCAT服务器安装与配置一、安装JDK可先到HTTP/JAVASUNCOM/J2SE/DOWNLOADSHTML下载JDK最好是130版本以上。下载后安装到CJDK目录下,即可。二、安装TOMCAT可先到HTTP/JAKARTAAPACHEORG/SITE/BININDEXHTML下载40以上版本,然后解压并重新命名为TOMCAT,放在C根目录下。三、设置JDK和TOMCAT在WINDOWS下A、配置JDK先设置JDK的路径PATH开始设置控制面板系统高级环境变量系统变量。然后单击“新建”按钮。变量名“CLASSPATH“变量值“CJDKCJDKBIN“同理新建PATH“CJDKLIBTOOLSJARCJDKLIBSTJAR“B、配置TOMCAT先设置TOMCAT的路径PATH开始设置控制面板系统高级环境变量用户变量。然后单击“新建”按钮。同上输入TOMCAT_HOMECTOMCAT再在“系统变量”单击“新建”按钮。输入JAVA_HOMECJDK完成以上配置就算大工告成。测试进入DOS输入JAVAC如若显示可选项信息,即可。双击CTOMCATBINSTARTUPBAT使虚拟服务器运行,然后打开IE浏览器,输入HTTP/LOCALHOST8080/INDEXHTML,如若显示成功,则TOMCAT也安装成功。(注意一般用户目录在CTOMCATWEBAPPSEXAMPLES下,一般用户可在其下建一用户目录以便保存JSP文件,而JAVABEAN一般放在CTOMCATWEBAPPSEXAMPLESWEBINFCLASSES目录下。另外注意没有IP地址的电脑是不能运行JVM的。212MYSQL的安装与配置MYSQL的简单介绍MYSQL作为一种开放源码数据库,以其简单易用的特点广泛被广大用户采用,MYSQL虽然是免费的,但同ORACLE,SYBASE,INFORMIX,DB2等商业数据库一样,具有数据库系统的通用性1)数据库管理系统。我们知道,所谓的数据库就是一些结构化的数据的联合体,要提供对这些数据的存取、增加、修改、删除或更加复杂的数据抽取等操作,需要有一个支撑系统,这就是数据库管理系统(DBMS),MYSQL完全具有这方面的功能。2)关系型数据库管理系统。在数据库的发展历程中,曾出现过多种不同形式的数据库系统,但关系型数据库管理系统(RDBMS)以其优越性而被广为采用,象现在几种广泛使用的数据库全为关系型数据库。同样,MYSQL也是关系型的数据库系统,支持标准的结构化查询语言(STRUCTUREDQUERYLANGUAGE)。3)开放源码数据库。同商业性的数据库相比,这是MYSQL最大的特点。MYSQL的源码是公开的,这就意味着任何人,只要遵守GPL的规则都可以对MYSQL的源码使用、修改以符合自己特殊的需求。4)技术特点。MYSQL是C/S架构的服务器,服务器端是多线程的,为客户端提供了不同的程序接口和链接库,如C、C、JAVA、PERL、PHP、TCL等,也提供了简单的管理工具,如MYSQLADMIN,MYSQL等。MYSQL有如此多的特点,又由于其免费的特点,这就给许多的中小应用提供了不错的选择。尤其是对一些中小企业,无论是从降低成本,还是从性能方面,采用MYSQL作为其数据支撑系统,都是一种可行的方案。但也应当注意,采用MYSQL作为应用数据库,就意味着所有的问题都需要自己解决,要承担一定的风险。安装与配置下载从MYSQL官方网站HTTP/WWWMYSQLCOM下载WINDOWS版的MYSQL安装文件MYSQL5018WIN32ZIP安装1解压MYSQL5018WIN32ZIP后得到SETUPEXE,双击进行安装,安装过程非常简单,最后有一项PASSPORT的选择页面,选择跳过即可。2之后会自动启动MYSQL配置程序(EXE文件目录MYSQL_HOMEBINMYSQLINSTANCECONFIGEXE)。如之前安装过会首先进入选择界面选择你想要配置的MYSQL服务即可,点击下一步如果之前没有安装过任何版本的MYSQL,会直接进入下图界面之后是一些配置选项,按照你的用途选择就可以了,不过请注意下面这个界面这是选择INNODBDATAFILES的一步,请记住你选择的盘符和路径(原因后面再说)最后需要设定密码,默认的用户名为ROOT。安装完后它会自动编写MYSQL_HOMEMYINI并启动MYSQL服务。在命令行模式下输入MYSQL,能够进入MYSQL提示符说明MYSQL启动成功22ECLIPSE和MYECLIPSE的安装与配置1简单介绍ECLIPSE和MYECLIPSEECLIPSE是一个开放源代码的、基于JAVA的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,ECLIPSE附带了一个标准的插件集,包括JAVA开发工具(JAVADEVELOPMENTTOOLS,JDT)。这种平等和一致性并不仅限于JAVA开发工具。尽管ECLIPSE是使用JAVA语言开发的,但它的用途并不限于JAVA语言;例如,支持诸如C/C、COBOL和EIFFEL等编程语言的插件已经可用,或预计会推出。ECLIPSE框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。简单而言,MYECLIPSE是ECLIPSE的插件,也是一款功能强大的J2EE集成开发环境,支持代码编写、配置、测试以及除错。GENUITEC发布了MYECLIPSEENTERPRISEWORKBENCH50,更智能、更快捷、更简单和更便宜的J2EE工具的新版本的诞生。它的价格对于个人和企业开发人员来说都是非常有吸引力的。这是J2EEIDE市场一个重量级的选手。通过增加UML双向建模工具、WYSIWYG的JSP/STRUTSDESIGNER、可视化的HIBERNATE/ORM工具、SPRING和WEBSERVICES支持,以及新的ORACLE数据库开发,MYECLIPSE50继续为业界提供全面的产品。GENUITEC总裁MAHERMASRI说,“今天,MYECLIPSE已经提供了意料之外的价值。其中的每个功能在市场上单独的价格都比MYECLIPSE要高。但是,我们承诺为顾客提供全面并且可以买得起的解决方案。按照这个传统,我们的顾客将继续享受年度订购活动的好处,该活动提供了所有发布功能的入口以及伴随MYECLIPSE50一起的专业技术支持。“2安装ECLIPSE和MYECLIPSE将ECLIPSESDK312WIN32ZIP直接解压到要安装的目录即可。然后安装MYECLIPSE,注意在安装的时候要正确选择ECLIPSE的安装路径。3运行环境的配置指定ECLIPSEMYECLIPSE的JRE、TOMCAT服务器和编码方式1一般情况下,ECLIPSE可以自动找到JRE,我们不用进行过多的设置。2配置TOMCAT启动ECLIPSE,菜单栏中选择“窗口WINDOW”“首选项PREFERENCE”“MYECLIPSE”“APPLICATIONSERVERS”“TOMCAT5”将TOMCATSERVER设置为“ENABLE”,并将“TOMCATHOMEDIRECTORY”设置为TOMCAT559的安装目录,其他目录选项将会自动生成3配置默认编码仍然是菜单栏中的“窗口WINDOW”“首选项PREFERENCE”“常规GENERAL”“内容类型CONTENTTYPES”“文本TEXT”然后在“缺省编码DEFAULTENCODING”中输入“UTF8”,点击“更新UPDATE”将“JAVA类文件JAVAPROPERTIESFILE”及其他字符编码均“更新UPDATE”为“UTF8”3开发技术介绍31JAVA311JAVA概述1991年,SUNMICROSYSTEM公司的JAMEGOSLING、BILLJOE等人,为在电视、控制烤面包箱等家用消费类电子产品上进行交互式操作而开发了一个名为OAK的软件即一种橡树的名字,但当时并没有引起人们的注意,直到1994年下半年,INTERNET的迅猛发展,环球信息网WWW的快速增长,促进了JAVA语言研制的进展,使得它逐渐成为INTERNET上受欢迎的开发与编程语言,一些著名的计算机公司纷纷购买了JAVA语言的使用权,如MICROSOFT、IBM、NETSCAPE、NOVELL、APPLE、DEC、SGI等,因此,JAVA语言被美国的著名杂志PCMAGAZINE评为1995年十大优秀科技产品,计算机类就此一项入选,随之大量出现了用JAVA编写的软件产品,受到工业界的重视与好评,认为“JAVA是八十年代以来计算机界的一件大事“,微软总裁比尔盖茨在悄悄地观察了一段时间后,不无感慨地说“JAVA是长时间以来最卓越的程序设计语言“,并确定微软整个软件开发的战略从PC单机时代向着以网络为中心的计算时代转移,而购买JAVA则是他的重大战略决策的实施部署。因此,JAVA的诞生必将对整个计算机产业发生深远的影响,对传统的计算模型提出了新的挑战。SUNMICROSYSTEM公司的总裁SCOTTMCNEALY认为JAVA为INTERNET和WWW开辟了一个崭新的时代。环球信息网WWW的创始人BERNERSLEE说“计算机事业发展的下一个浪潮就是JAVA,并且将很快会发生的“。312JAVA的特点JAVA是一个广泛使用的网络编程语言,它是一种新的计算概念。首先,作为一种程序设计语言,它简单、面向对象、不依赖于机器的结构、具有可移植性、鲁棒性、安全性、并且提供了并发的机制、具有很高的性能。其次,它最大限度地利用了网络,JAVA的小应用程序APPLET可在网络上传输而不受CPU和环境的限制。另外,JAVA还提供了丰富的类库,使程序设计者可以很方便地建立自己的系统。JAVA语言有面一些特点简单、面向对象、分布式、解释执行、鲁棒、安全、体系结构中立、可移植、高性能、多线程以及动态性。1简单性JAVA语言是一种面向对象的语言,它通过提供最基本的方法来完成指定的任务,只需理解一些基本的概念,就可以用它编写出适合于各种情况的应用程序。JAVA略去了运算符重载、多重继承等模糊的概念,并且通过实现自动垃圾收集大大简化了程序设计者的内存管理工作。另外,JAVA也适合于在小型机上运行,它的基本解释器及类的支持只有40KB左右,加上标准类库和线程的支持也只有215KB左右。库和线程的支持也只有215KB左右。2面向对象JAVA语言的设计集中于对象及其接口,它提供了简单的类机制以及动态的接口模型。对象中封装了它的状态变量以及相应的方法,实现了模块化和信息隐藏而类则提供了一类对象的原型,并且通过继承机制,子类可以使用父类所提供的方法,实现了代码的复用。3分布性JAVA是面向网络的语言。通过它提供的类库可以处理TCP/IP协议,用户可以通过URL地址在网络上很方便地访问其它对象。4鲁棒性JAVA在编译和运行程序时,都要对可能出现的问题进行检查,以消除错误的产生。它提供自动垃圾收集来进行内存管理,防止程序员在管理内存时容易产生的错误。通过集成的面向对象的例外处理机制,在编译时,JAVA提示出可能出现但未被处理的例外,帮助程序员正确地进行选择以防止系统的崩溃。另外,JAVA在编译时还可捕获类型声明中的许多常见错误,防止动态运行时不匹配问题的出现。5安全性用于网络、分布环境下的JAVA必须要防止病毒的入侵。JAVA不支持指针,一切对内存的访问都必须通过对象的实例变量来实现,这样就防止程序员使用“特洛伊“木马等欺骗手段访问对象的私有成员,同时也避免了指针操作中容易产生的错误。32SERVLET技术321SERVLETS工作原理及概述SERVLETS是用JAVA语言实现的独立于协议和平台的服务器端组件,它动态扩展了支持JAVA的服务器,它可以被插入到支持JAVA的WEB服务器中以提供定制服务,包括增加新的特性服务页面内容的动态改变(RUNTIMECHANGES)页面显示的动态改变(RUNTIMECHANGES)对新的标准协议的支持例如FTP对用户定制协议的支持如图所示,SERVLETS在服务器内部工作,它们不需要图形用户接口,作为JAVA程序组件,它们根据需要在服务器内部被部署。而使用SERVLETS的客户多种多样,既有简单的HTML表单,也有复杂的JAVAAPPLETS。SERVLETS被设计在请求/应答(REQUEST/RESPONSE)处理模式下工作,在该模式下,客户向服务器发送请求消息,服务器则通过发送应答消息予以回复。请求消息可以采用如下格式HTTPURLFTP用户定制协议在通常情况下,请求和其相关应答可以反映请求时刻客户和服务器的状态,而客户和服务器之间连接的状态无法在多个请求/应答之间保存,而SERVLET所提供的会话(SESSION)机制则可以在多次请求/应答之间保存会话信息。SERVLETS有效地扩展了基于请求/应答的服务器(例如WEB服务器)的功能,下图显示了一个最简单的应用实例,一个SERVLET负责获取来自客户的HTML格式的定单项(ORDERENTITY)数据,然后实施商业逻辑(BUSINESSLOGIC)处理,以便最终更新用户的定单数据库。JAVASERVLETAPI包括若干JAVA接口(JAVAINTERFACES),全面定义了主机服务器与SERVLETS之间的连接。SERVLETAPI属于标准JAVA开发包(JDK)扩展,被包含在如下JAVA包中JAVAXSERVLETJAVAXSERVLETHTTPSERVLETSAPI包括了很多有用的特性,如会话跟踪(SESSIONTRACKING)、表单数据采集(FORMDATAPARSING)、共享数据(SHAREDDATA)、国际化字符I/O,初始化参数、请求代理(REQUESTDELEGATION)等。322特点及应用SERVLETS是对JAVA环境的一个功能强大的补充,具有快速、安全、可靠和100纯JAVA的优点。因为SERVLETS被插入到已经存在的服务器中运行,可以有效利用大量现成代码和技术,所有有关网络连接、协议协商、类装载等等工作都可以由服务器代劳,极大地减少了重复工作。协议支持SERVLETAPI提供了服务器和SERVLETS之间的紧密连接,它们允许为服务器增加新的协议支持。SERVLETAPI包中已经实现了对HTTP的很好支持。从本质上说,任何遵循请求/应答工作模式的协议都可以通过一个SERVLET来实现,包括SMTPPOPFTP目前主要的WEB服务器都实现了对SERVLETS的支持,而越来越多的其他类型的应用程序服务器也开始实现对SERVLETS的支持。由于HTTP是最为常用的协议之一,SERVLETS在基于HTTP的系统中得到了最为广泛的应用。相对于其他服务器端技术如CGI、WEB服务器API扩展(NSAPI、ISAPI、APACHEMODULES)等,SERVLETS有如下优势由于使用了不同的处理模型和处理机制,SERVLETS在速度和效率上高于CGI,在功能和实现灵活性上也要强于CGI,有取代CGI的趋势。SERVLETS使用了被许多WEB服务器产品支持的标准API,具有较强通用性。SERVLETS具有JAVA编程语言的所有优点,包括易于开发、平立性等。SERVLETS可以访问基于JAVA平台和JAVA技术的大量API,能很好地和目前主流体系结构(如J2EE)融合,具有高灵活性和高扩展性,适用于构造大型复杂的应用系统。33JSP技术介绍331JSP概述JAVASERVERPAGES(JSP)是一种实现普通静态HTML和动态HTML混合编码的技术,有关JSP基础概念的说明请参见JSP技术简介。许多由CGI程序生成的页面大部分仍旧是静态HTML,动态内容只在页面中有限的几个部分出现。但是包括SERVLET在内的大多数CGI技术及其变种,总是通过程序生成整个页面。JSP使得我们可以分别创建这两个部分332JSP与SERVLET的比较1JSP以文本为主,主要用于画界面2JSP可以人工扩充,而SERVLET是固定的3JSP内核是SERVLET,所以也是基于HTTP协议的请求响应循环4由HTML(CSS、XML)、JAVACODE、JSP标签组成5JSP有自定义标签(ASP没有)6CGI和SERVLET以代码为主,代码中嵌文本;JSP中文本中嵌代码7JSP擅长于表现,而短于逻辑;而SERVLET一般用作CONTORLER和DIAPATCH控制和流转;所以在JSP中写界面元素,而逻辑方面由SERVLET完成。8JSP不需要写JAVA文件、不需要编译和配置,它被封装到了容器内部9JSP代码不可重用333JSP的工作原理(1)翻译(转换)阶段JSPJAVA(2)编译阶段JAVACLASS(3)运行阶段运行编译后生成的CLASS文件。以上三个阶段均由JSP引擎来执行;JSP引擎由WEB服务器所提供,它实际上就是一个SERVLET(该SERVLET在CONF/WEBXML中配置)JSP的特点(1)JSP里面可以嵌入JAVA代码(2)在运行的时候,JSP被容器翻译成为一个SERVLET,放在APACHETOMCAT5520WORKCATALINALOCALHOST目录下面(3)不需要再在配置文件里面配置(4)文件被修改之后,自动进行重新编译334JSP的环境配置向MYECLIPSE插入JSPAPIJARJSTLJAR和STANTDARDJAR到WEB应用程序的WEBINF/LIB下便可使用JSP了。34STRUTS技术341STRUTSMVC框架WEB应用的分层交互层,表现数据,收集数据,也就是视图层,接受请求,通过处理层完成相应的响应。(V,C)处理层,完成数据的处理,也就是业务层(M)。MVC设计模式(应用观察者模式的框架模式)MMODEL,模型,操作数据的业务处理层。VVIEW,示图,采集和显示数据,为业务层提供数据,表现业务层输出的数据,只关心数据的类型,不管新数据的来源。CCTRL,控制器,也就是视图层和模型层桥梁,控制数据的流向,接受视图层发出的事件,并重绘视图。MVC框架的实现模型STRUTSMVC框架STRUTS是使用MVC的实现模式二来实现的,也就是以控制器为核心。STRUTS提供了一些组件使用MVC开发应用程序MODELSTRUTS没有提供MODEL类。这个商业逻辑必须由WEB应用程序的开发者以JAVABEAN或EJB的形式提供VIEWSTRUTS提供了ACTIONFORM创建FORMBEAN,用于在CONTROLLER和VIEW间传输数据。此外,STRUTS提供了自定义JSP标签库,辅助开发者用JSP创建交互式的以表单为基础的应用程序,应用程序资源文件保留了一些文本常量和错误消息,可转变为其它语言,可用于JSP中。CONTROLLERSTRUTS提供了一个核心的控制器ACTIONSERVLET,通过这个核心的控制器来调用其他用户注册了的自定义的控制器ACTION,自定义ACTION需要符合STRUTS的自定义ACTION规范,还需要在STRUTSCONFIGXML的特定配置文件中进行配置,接收JSP输入字段形成ACTIONFORM,然后调用一个ACTION控制器。ACTION控制器中提供了MODEL的逻辑接口。STRUTS使用MODEL2架构,它的ACTIONSERVLET控制导航流,其他STRUTS类,比如ACTION,用来访问业务逻辑类。当ACTIONSERVLET从容器接收到一个请求,它使用URI或者路径“PATH”来决定那个ACTION将用来处理请求。一个ACTION可以校验输入,并且访问业务层以从数据库或其他数据服务中检索信息。为校验输入或者使用输入来更新数据库,ACTION需要知道什么指被提交上来。并不是强制每个ACTION从请求中抓取这些值,而是由ACTIONSERVLET将输入绑定JAVABEAN中。输入BEAN是STRUTSACTIONFORMC类的子类。ACTIONSERVLET通过查找请求的路径可以决定使用哪个ACTIONFORM,ACTION也是通过同样的方法选取的。ACTIONFORM扩展ORGAPACHESTRUTSACTIONACTIONFORM类。每个都必须以HTTP响应进行应答。通常,STRUTSACTION并不自行加工响应信息,而是将请求转发到其他资源,比如JS页面。STRUTS提供一个ACTIONFORWARD类,用来将一个页面的路径存储为逻辑名称。当完成业务逻辑后,ACTION选择并向SERVLET返回一个ACTIONFORWARD。SERVLET然后使用存储在ACTIONFORWARD对象中的路径来调用页面完成响应。STRUTS将这些细节都绑定在一个ACTIONMAPPING对象中。每个ACTIONMAPPING相对于一个特定的路径。当某个路径被请求时,SERVLET就查询ACTIONMAPPING对象。ACTIONMAPPING对象告诉SERVLET,哪个ACTIONS,ACTIONFORMS,和ACTIONFORWARDS将被使用。所有这些细节,关于ACTION,ACTIONFORM,ACTIONFORWARD,ACTIONMAPPING,以及其他一些东西,都在STRUTSCONFIGXML文件中定义。ACTIONSERVLET在启动时读取这个配置文件,并创建一个配置对象数据库。在运行时,STRUTS应用根据文件创建的配置对象,而不是文件本身。342基于STRUTS的WEB应用的开发步骤1,对应用环境进行配置2,创建WEB应用的结构,需要将STRUTS应用的JAR文件进行部署。3,在WEB服务器部署STRUTS4,配置STRUTSCONFIGXML文件,配置ACTOIN5,写自定义ACTION,实体,以及业务类写一个基于STRUTS的WEB应用1,创建一个符合标准的WEB应用的结构,也就是一个有WEBINF文件夹的应用文件夹,在应用中需要使用到STRUTS的一些JAR文件,要放到WEBINF的LIB文件夹下,这些JAR文件都在STRUTS的ZIP文件中的/STRUTS129BIN/LIB下还有STRUTS129BIN/CONTRIB/STRUTSEL/LIB下的STANDARDJAR、JSTLJAR和STRUTSELJAR。2,在WEBXML中配置STRUTS的核心控制器ACTIONSERVLET,并指明STRUTS的配置文件的所在位置WEBINF下,在STRUTS的文件中有一个样板的WEBXML文件,使用这个WEBXML文件来部署应用就可以了,这个样板在STRUTS的ZIP文件中的STRUTS129SRCZIP文件中的WEB/EXAMPLES/WEBINF/WEBXML就是样板文件。部署应用看STRUTS是否发布成功。ACTIONORGAPACHESTRUTSACTIONACTIONSERVLETCONFIG/WEBINF/STRUTSCONFIGXMLACTIONDO3,写JSP页面和业务,实体,和自定义控制器类ACTION,自定义ACTION是要继承于ACTION类ACTIONFORM是可以自动将表单中的数据封装成对象,当然,一个自定义ACTIONFORM也是要遵守STRUTS规范的,也就是要继承于ACTIONFORM,并在以上的STRUTSCONFIGXML进行配置。SERVLETCONTROLLER(ACTIONSERVLET和自定义的ACTION),配置CTRLER需要配置STRUTSCONFIGXML,通过客户端FORM的ACTION来查找调用相应的ACTION,自定义ACTION中的MAPPING对应的是配置文件中的FORWARD标签,通过FORWARD的PATH属性来跳转到相应的路径。STRUTS预定义的ACTION类注意在使用继承STRUTS预定义的ACTION类,一定不要覆盖EXECUTE方法,否则会导致无法调用自定义ACTION相应方法。DISPATCHACTION类ORGAPACHESTRUTSACTIONSDISPATCHACTIONDISPATCHACTION类是ACTION类的子类,他提供了有实现的EXECUTE方法。我们写的自定义ACTION类,可以继承DISPATCHACTION类,但不要覆盖EXECUTE方法,可以在自定义类中写反回值和参数表都与EXECUTE方法相同的方法,可以通过在STRUTSCONGFIGXML中为这个ACTION的配置中添加一个参数,来判断调哪一个方法,实际上DISPATCHACTION类就是通过反射机制,通过FORM中参数调用了自定义ACTION中的方法,当然这些方法的定义要符合规范,使用继承DISPATCHACTION类的自定义的ACTION类,也就会共享同一的ACTION路径。注意使用继承DISPATCHACTION类的自定义的ACTION,只会匹配一个ACTION路径,只能共享一个ACTIONFORM,如果加上校验,会产生FORM表单的参数不一致的情况,会导致校验无法通过。MAPPINGDISPATCHACTION类ORGAPACHESTRUTSACTIONSMAPPINGDISPATCHACTIONMAPPINGDISPATCHACTION类是DISPATCHACTION的子类,他和DISPATCHACTION不同点就是可以去匹配多个ACTION路径,这样也就是结决了共用ACTOINFORM的校验问题了,多个ACTION的路径使用同一的自定义ACTION类,这样就不用共享同一个ACTIONFORM,也就不会有校验问题了。在JSP页面中也不用在使用隐藏域传递参数,直接在FORM中的ACTION中就可以直接使用XXXDO匹配了。LOOKUPDISPATCHACTIONORGAPACHESTRUTSACTIONSLOOKUPDISPATCHACTIONLOOKUPDISPATCHACTION类也是DISPATCHACTION类的子类,他所实现的功能是解决一个表单多种提交问题的,他是通过使用资源文件,用SUBMIT按钮的VALUE来作为资源文件中的KEY所对应的值,通过这个值来找到对用的KEY,在使用这个KEY来获得指定MAP中所对应的值,这个值就是要调用的方法名。SUBMIT的VALUEMESSAGERESOURCEPROPERTIES中的KEYMAP中KEY对相应的值ACTION注意在继承LOOKUPDISPATCHACTION时,要覆盖GETKEYMETHODMAP方法,并定义MAP,向MAP中放入指定的键值对。自定义的ACTION类的一些规则1,尽量不要在ACTION类中使用(静态)成员变量,如果使用要加上同步。2,尽量使各模块间的耦合性降低,最大限度的针对接口编程。3,可以将共代码方在覆盖父类的方法中,最后可以用SUPERXXXXXX来调用父类的方法,使用父类的实现,并加上了自定义的功能。343STRUTS的TOKEN(令牌)机制STRUTS使用TOKEN机制,来防止恶意的破坏和重复提交问题,也就是点击后退后在再提交,这是STRUTS无法发现的,在FORM中生成一个TOKEN码,在SESSION中也报村有一个同样的TOKEN码,当表单提交后,判断两个TOKEN码向等后,就会改变SESSION中的这个TOKEN码,当然在用回退后,FORM的TOKEN码是不会变的,在提交,还会判断两个TOKEN码是否相等,如果不等就会抛出异常,证明这是过时的垃圾数据。VOIDSAVETOKENHTTPSERVLETREQUESTREQUEST方法用于将在客户端生成的TOKEN码,保存在SESSION中。VOIDRESETTOKENHTTPSERVLETREQUESTREQUEST方法用于重置TOKEN码,生成新的TOKEN码。BOOLEANISTOKENVALIDHTTPSERVLETREQUESTREQUEST,BOOLEANRESET判断TOKEN码是否相等,并且是否重置TOKEN码。RESET是设定是否重置TOKEN码,一般设为TRUE。STRUTS的异常处理STRUTS只处理ACTION的异常,配置STRUTS的异常处理全局的异常处理在EXCEPTION标签中的KEY,也就是在出现异常时会封装在ACTIONERRORS中,也就是可以在页面中使用。ACTIONERRORSTRINGKEY,OBJECTVALUE0,可以通过在构造ACTIONERROR时,指定不同的KEY值来对异常进行分类,并且在HTMLERROR标签的自己构造ACTIONERRORS并使用下面的方法发送VOIDSAVEERRORSHTTPSERVLETREQUESTREQUEST,ACTIONERRORSERRORS这个方法用以把封装了异常的ACTIONERRORS的KEY存储到REQUEST中。35HIBERNATE351HIBERNATE数据持久化组件对象持久化,把数据保存在永久的存储介质中(数据库)OR/M(OBJECTRELATIONMAPPING)对象关系映射。POJO类,就是标准的JAVABEAN。HIBERNATE就是一个可以自动的根据XML完成对象关系映射,并持久化到数据库的开源组件。HIBERNATE的底层也是有JDBC实现的。HIBERNATE是通过XML文件的配置,对数据库的底层的方言,以及数据库连接所需的信息,以及连接数据库的驱动。HIBERNATE的系统配置文件的名字一般叫做HIBERNATECFGXML,一般是映射类名加HBMXML。一般将映射类的XML文件和实体类放在一起。HIBERNATECFGXML中会设置数据库的连接信息,以及引用的其他文件的文件名,和一些其他的摄制。这个文件一般放在项目的根目录下。352使用HIBERNATE编程步骤1,配置环境,加载HIBERNATE的JAR文件,以及连接数据库连接使用的JAR文件,并配置CLASSPATH环境变量。2,写HIBERNATE所需的配置文件,HIBERNATECFGXML,XXXXXHBMXML3,写POJO类4,调用HIBERNATEAPI。1使用CONFIGURATION对象的BUILDSESSIONFACTORY方法创建SESSIONFACTORY对象2使用SESSIONFACTORY对象OPENSESSION方法创建SESSION对象。3使用SESSION的相应方法来操作数据库,将对象信息持久化到数据库。353HIBERNATE控制的事务事务保证原子操作的不可分,也就是操作的同时成功或同时失败。TRANSACTIONTRANSESSIONBEGINTRANACTIONTRANCOMMITTRANROLLBACK以上是事务对象的方法,来实现对事务的支持。HIBERNATE的事务隔离级别HIBERNATE的事务隔离级别和JDBC中大致相同。设置时要在HIBERNATECFGXML配置41,读未提交的数据(READUNCOMMITTEDISOLATION)2,读已提交的数据(READCOMMITTEDISOLATION)4,可重复读级别(REPEATABLEREADISOLATION)8,可串行化级别(SERIALIZABLEISOLATION)HIBERNATE的锁(悲观锁,乐观锁)悲观锁是由数据库本身所实现的,会对数据库中的数据进行锁定,也就是锁行。LOCKMODEUPGRADE,修改锁,在GET方法中加上这个设置作为第三个参数。LOCKMODENONE无锁机制LOCKMODEREAD读取锁LOCKMODEWRITE写入锁,不能在程序中直接使用还可以使用SESSIONLOCKQUERYSETLOCKMODECRITERIASETLOCKMODE方法来设置锁4系统设计41需求分析411功能分析根据实际合同管理系统的行为规范,具体功能包括客户管理。有客户的注册,修改和删除功能,以及客户名,地区进行查询。合同管理。有合同的录入,修改和删除,另外按时间,客户,客户地区,以及按合同的进度进行查询;职工管理。有职工的添加,修改和删除功能,另外有查询所有的职工。功能描述1客户管理A客户基本信息的维护客户信息的录入客户信息修改客户信息删除B客户信息的查询合同管理客户管理合同管理职工管理按地区查询按客户名称查询2合同管理A合同的基本编辑合同的录入合同的修改B)合同的维护合同录入后,交付上级管理人员、部门审核,负责人签名合同变更,相关管理人员对合同内容进行变更,负责人签名合同执行进度管理,对合同的执行情况进行记录C合同统计查询管理合同订单的查询(按时间、客户、客户地区查询)按照合同的完成情形查询审核,未审核3职工管理A职工基本信息的维护职工信息的录入职工信息修改职工信息删除B客户信息的查询集体职工查询412角色分析根据实际情况,本系统分为三种角色客户,职工,管理员。客户委托职工或者管理员进行合同的办理;职工受客户委托进行合同办理,合同的管理,录入,修改,查询,删除;管理员受客户委托进行合同办理,合同的管理,录入,修改,查询,删除;对职工进行管理,职工的添加,修改,查询,删除。413数据库分析根据功能和角色分析,可以知道实体类有三个;管理员和职工都为一方,设计为一个类,客户为一个类,合同为一个类,这样一来的话,在数据库就建成3张表,即STAFF,CUSTOMER,CONTRACTSTAFF的属性信息包括1全体职工的用户名,2职工的密码;3职工的权限,管理员还是普通职工;类图如下CUSTOMER的属性信息包括1客户姓名;2客户性别;3客户电话;4客户住址;5客户传真;6客户身份证;7客户邮编;类图如下CONTRACT的属性信息包括1合同名称;2合同描述;3合同内容;4合同录入时间;5合同名称状态,未签署还是已签署;类图如下数据实体间的关系职工与客户之间一个职工对多个客户;客户与合同之间一个对应多个合同,一个合同可以被多个客户拥有,多对多关系43数据库设计由于合同系统功能复杂,并且要存取的数据较多,因此简单地使用文件来存储数据库和管理显然是不合适的。所以本系统使用MYSQL数据库来存储数据。根据系统需求分析需要创建以下的数据表来存储数据1CUSTOMER表用来保存客户注册的一些基本信息,并且同时保存一些STAFF信息,设计出CUSTOMER表如表CUSTOMER表字段名称数据类型说明IDINT用户IDNAMEVARCHAR用户名PHONEVARCHAR电话号码FOXVARCHAR传真POSTCODEVARCHAR电子邮件SEXVARCHAR性别IDCNUMVARCHAR身份证REGDATEDATE注册时间ADDRESSVARCHAR详细地址STAFF_IDINT职工或管理员ID2CONTRACT表用来保存合同的一些基本信息,和客户的一些信息设计出CONTRACT表如下CONTRACT表字段名称数据类型说明IDINT合同IDNAMEVARCHAR合同名称DESCRIPTIONVARCHAR合同描述SUBMITDATEDATE录入时间CENTENTVARCHAR合同内容STATUSINT状态CUSTOMER_IDINT合同对应的客户ID3STAFF表用来保存用户的一些基本信息,设计出STAFF表如下STAFF表字段名称数据类型说明IDINT职工或者管理员IDNAMEVARCHAR用户名字PASSWDVARCHAR用户密码FLAGVARCHAR权限44系统总体设计441设计思想现代化的企业越来越重视科学技术,只有把科学技术应用到企业中才能获取更大的效益。合同是商品经济的产物,是商品交换的法律表现形式。现代企

温馨提示

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

评论

0/150

提交评论