毕业设计企业内部管理信息系统的分析与设计785.docx
毕业设计论文Evaluation Warning: The document was created with Spire.Doc for .NET.毕 业 设 计设计题目: 密云云县农业业信息管管理决策策系统 系 别 计算机机技术系系 专业年级 计算机机软件 学生姓名 学号 333 指导教师 职称称 企业内部管管理信息息系统的的分析与与设计 一、 目录和前言言(一) 系统概述1、系统功功能与应应用背景景当前,网网络的影影响所覆覆盖的范范围及领领域日益益扩大,最最大的影影响莫过过于带我我们进入入信息化化时代。随随着信息息交流节节奏的加加快,一一个高性性能的网网络化的的管理系系统平台台成为了了包括企企业、学学校和行行政部门门等团体体的一种种急切需需求。本本系统作作为一个个中小型型的管理理信息平平台,在在一定程程度上便便是适应应这样发发展的需需求。系统具备备较完善善的信息息管理功功能,通通过使用用本系统统,企业业内部员员工用户户和高层层管理用用户实现现直达式式交流,是是沟通更更具备实实时性和和准确性性,能够够有效地地提高工工作效率率。在众多的的网络开开发语言言中,我我们选用用JSPP,是因因为它具具有高可可靠性和和方便的的移植性性,以及及优秀的的平台开开发解决决方案。本本系统的的开发环环境如下下: 系系统开发发操作系系统:WWinddowss XPP 。 系统统开发数数据库系系统:OOraccle 9i 。 系系统开发发前台页页面设计计:Dreeamwweavver MX 200004。 JJSP服服务端引引擎:WWebllogiic SServver 9.11 . 系系统后台台设计开开发环境境:Ecclippse .2、 系统统预览如图1-11所示为为登录主主界面,在在这里可可以选择择登录的的部门,根根据登录录的权限限不同,进进入的界界面也是是不同的的。图1-1登录主界面如图1-22所示是是员工浏浏览信息息的一个个部分页页面,从从图1-2可以以看出,员员工可以以浏览各各该部门门所发布布的热点点信息和和最新信信息。图1-2员员工浏览览界面如图1-33所示是是某个部部门的信信息录入入界面图1-3部部门信息息录入界界面根据其账号号权限可可以在左左边导航航栏选取取所允许许操作的的功能模模块。这这种以功功能模块块来划分分的编程程思想,大大大地增增加了开开发的独独立性和和可维护护性,是是现今系系统开发发的主流流思想。3、系统特特点 分层结结构设计计:本系系统采用用界面中间件件数据库库三层结结构,将将不同的的复杂的的数据库库操作或或是业务务逻辑计计算划分分为独立立的模块块封装于于Beaan中,作作为用户户界面和和数据库库之间的的中间件件,所有有的数据据库操作作由用户户界面调调用Beean来来完成,提提高了系系统的安安全性和和可移植植性。 分层信信息管理理:系统统采用双双层信息息分类进进行信息息的组织织管理,使信息的分类归属更为清晰明确,不仅提高了信息的利用效率,而且方便了用户的查看、搜索等。二、 系统统设计和功能说明明(一)系统统设计1、 系统统设计思思想系统设计思思想在一一定程度度上决定定了一个个系统设设计的成成败,也也从某种种角度反反映了一一个系统统的生命命力。下下面来介介绍本系系统的设设计思想想。1.1 功能的独立立化、模模块化 JSSP是嵌嵌入了JJavaa代码的的HTMML,两两种标记记混杂在在一定程程度上使使开发更更为方便便,但也也存在问问题,比比如复杂杂的代码码易出错错,且出出错时不不方便使使用开发发工具来来设置断断点排查查。使用用JavvaBeean专专注开发发逻辑层层,JSSP页面面专注于于开发表表达层,最最大限度度地提高高了开发发效率。同时,系统统将涉及及复杂操操作的不不同功能能独立出出来,最最为一个个模块化化来设计计,在需需要用到到特定功功能的程程序中,仅仅仅作出出调用即即可。这这样做不不仅避免免了程序序代码中中一些不不必要的的重复,更更重要的的是使整整个系统统层次结结构更为为清晰,大大大方便便了以后后系统功功能的增增加,在在一定程程度上也也缩减了了开发成成本。1.2 三层结构设设计思想想 系统主主体架构构采用界界面中间件件数据库库这样的的三层结结构,使使系统业业务逻辑辑和数据据库基础础操作与与用户界界面分开开,能够够使业务务逻辑程程序员更更专注于于Javva程序序的开发发,而界界面设计计者专注注于用户户界面的的开发,在在一定程程度上明明确了系系统开发发的分工工,如图图2-11所示浏览器数据库服务器 Web服务器中间件浏览器数据2、系统功功能模块块和结构构设计在本系统中中,主要要有两种种角色的的用户,即即普通员员工用户户和管理理员用户户,管理理员又可可以分为为总管理理员和中中心管理理员。系统中普通通员工用用户仅具具有信息息浏览、检检索全县县。功能能模块化化分如图图2-22所示模糊检索信息浏览信息内容按类别察看信息普通员工浏览主页面普通员工按浏览热点排行Web服务器JavaBeans数据库图:2-22普通员员工角色色功能模模块图系统中管理理员具有有记录管管理、信信息类别别管理、管管理员工工管理和和上传附附件管理理等功能能,具体体功能模模块化分分如图22-3所所示拒绝登录、返回登录框密码验证模块登录请求 上传附件管理管理员管理类别管理记录管理Web服务器操作权限验证登录信息保存于Session中密码验证证? 退出管理,或操作超时拒绝操作,给出错误提示,返回数据库JavaBeans清除Session具有权限限?(二) 数数据库设设计1、数据库库需求分分析作为一个具具有一定定应用价价值的管管理信息息系统,从从本质上上说其操操作的对对象为数数据库中中存储的的具体记记录。因因此不仅仅要求所所有的数数据库系系统具有有比较高高的稳定定性、安安全性及及高负载载下保持持足够响响应能力力,还要要求设计计者清楚楚需求,做做出科学学的数据据库逻辑辑结构设设计,以以提高数数据库的的利用率率和减少少数据冗冗余。以这种思想想作为设设计策略略,分析析出系统统的以下下几项需需求 系统用户主主要包括括员工用用户和管管理员用用户 系统的信息息需要由由两级分分类 附件上传及及管理功功能 不同权限管管理员的的权限认认证2、数据库库实体关关系设计计通过以上简简单的需需求分析析,我们们可以设设计出数数据库的的逻辑结结构E-RR图,即即实体-关系图图,从而而建立数数据库的的物理结结构即表表结构。所所谓实体体,反映映到数据据库中即即为数据据表,它它存储着着具体的的记录信信息;所所谓关系系,即表表与表的的联系,这这种联系系大多是是通过外外键(FFK:FForeeignnKeyy)实现现的。在在本例中中,因为为信息和和所属类类别之间间存在逻逻辑关系系,neews表表中的cclasssidd列与cclasss表中中的idd主键相相对应。也也即neews表表中的cclasssidd列是到到claass表表的外键键,其取取值范围围为cllasss表中的的id值值的集合合。IdAdminid(FK)Classid(fk)adminuserIdClassid(FK)TitleNewsParentclassClassAuthorFile1File2File3HitdAdmin class news adminclassIdparentidparentclassclassIdAdminuserAdminpassAuthorityI asttimeI astip根据需求求,我们们设计四四个数据据库表,管管理员用用户表(aadmiin),类别表表(cllasss),信信息表(nnewss)和管管理员权权限表(aadmiincllasss),其其结构及及关系如如图2-1所示示。3、系统数数据字典典确定了数据据库的逻逻辑关系系和数据据结构之之后,接接下来就就是将这这些概念念性的、逻逻辑性的的东西转转换为数数据库中中能够存存放信息息的数据据表。数据库系系统的选选用是根根据系统统的需求求而定,本本系统以以Oraaclee 9ii作为系系统使用用的数据据库系统统平台。(在在此本人人因避免免重复写写作,省省去数据据字典的的描写,另另附实例例数据字字典。)依照以上的的分析和和拒此建建立的数数据库字字典,我我们可建建立系统统的数据据库。若若是使用用Erwinn设计EE-R图图,我们们可以通通过它生生成建立立数据库库的SQQL脚本本。(具具体在OOraccle 9i中中创建数数据库的的过程比比较简单单,客户户端工具具需要安安装,操操作起来来不是很很顺手,在在这推荐荐一款SSQL Devveloopmeent的的绿色版版Oraaclee客户端端工具,很很容易上上手,操操作起来来就像SSQL serrverr。我会会把本系系统的mmyteest数数据库生生成sqql脚本本,这样样可以把把脚本导导入到数数据库直直接运行行)(三)中间间件的编编写本系统的组组件开发发使用的的开发工工具为EEcliipsee,它是是一个开开放源代代码的软软件开发发项目,最最初由OOTI和和IBMM两家公公司的IIDE产产品开发发组建,起起始于119999年4月月。IBBM提供供了最初初的Ecclippse代代码基础础,包括括Plaatfoorm、JJDT和和PDEE。目前前由IBBM牵头头,围绕绕着Ecclippse项项目已经经发展成成为了一一个庞大大的Ecclippse联联盟,有有1500多家软软件公司司参与到到Ecllipsse项目目中,其其中包括括Borrlannd、RRatiionaalSooftwwaree、Reed HHat及及Sybbasee。(介介绍下工工具)1、 数据库连接接与操作作Beaan的编编写数据库操作作类在本本系统中中具有举举足轻重重的作用用,所有有与数据据库相关关的操作作都需要要调用其其方法来来完成。以以exeecutteQuueryy方法为为例,其其输入参参数为SSQL语语句,返返回值为为一个RResuultSSet对对象,这这样做增增强了安安全性,因因为Beean类类文件是是.cllasss的二进进制文件件,即使使泄露,数数据库连连接密码码这样的的敏感数数据也可可受到保保护,不不至于造造成不必必要的损损失。具体代码码请参见见实例,为为节省篇篇幅,所所有代码码不予列列出,在在此仅做做介绍。2、 字符串格式式化Beean的的编写当把文本信信息从数数据库中中读出来来至HTTML页页面中时时,就要要涉及文文本格式式转换问问题。假假如我们们的文本本中有“>”和“<”这些超超文本语语言控制制符号,那那么当直直接输出出至客户户端时,客客户端浏浏览器将将无法分分辨这是是文本内内容信息息还是HHTMLL控制字字符,将将会输出出我们不不希望的的结果。用用此方法法将所要要输出的的数据处处理之后后再输出出就能避避免出现现此种问问题。我们需要完完成的字字符串格格式化的的Beaan主要要实现三三个方法法。 字符串串自定义义替换。即即输入一一个字符符串soourcce,用用指定的的新字符符串neewSttrinng替换换souurcee中的旧旧字符串串olddStrringg.将字符串串格式转转换成HHTMLL代码并并在表单单中输出出。即如如上文所所说 ,将将一些特特殊字符符转换为为可在HHTMLL中输出出的字符符。将字符串串格式转转换成HHTMLL代码并并在页面面中输出出。这要要求不仅仅仅对特特殊字符符处理,还还要对空空格、制制表符和和换行进进行转换换,以格格式化输输出至浏浏览器。3、用户登登录验证证Beaan的编编写系统的各级级管理员员用户需需要登录录系统以以完成管管理操作作,因此此系统需需要具有有处理验验证用户户登录的的功能。用用户登录录验证BBeann接收到到页面登登录框中中传递的的值,与与数据库库中存储储的用户户账户和和密码核核对,若若能成功功匹配,则则验证其其为合法法用户,否否则视为为非法用用户,可可拒绝其其进入系系统。4、 字符编码转转换Beean的的编写JSP以JJavaa为基础础,自然然也继承承了Jaava所所遇到的的中文乱乱码问题题。/*To chaangee thhe ttempplatte ffor thiis ggeneeratted fille ggo tto wwinddow&>preeferrencces&>jacca&ggt;ccodee geenerratiion&>codde aand commmennts*/Packaage utiil;Imporrt jjavaa.ioo.*;Publiic cclassss TraansFFormmatPubllic staaticc Sttrinng uuniccodee2GBB(Sttrinng sstrIIn)Bytee b;Striing strrOutt=nuull;If(ssrtIIn=nulll|(sstrIIn.ttrimm().eqqualls(“”)Retturnn sttrInn;Tryb=sstrIIn.ggetBBytees(“GBK”);strrOutt=neew SStriing(b,”ISOO 88859-1”)Catcch(UUnsuuppoorteedEnncoddinggExccepttionn e)Retturnn sttrOuut;Publiic sstattic Strringg GBB2unnicoode(Strringg sttrInn)Strinng sstrOOut=nulll;If(sttrInn=nnulll|(sttrInn.trrim().equualss(“”) reeturrn ssrtIIn;TryByte b=sttrInn.geetByytess(“ISOO 88859-1”);strOuut=nnew Strringg(b,”GBKK”);catchh(exxcepptioon ee)Returrn sstrOOut;5、 分页功能模模块Beean的的编写作为管理信信息系统统,必然然会涉及及大量数数据在前前台页面面上的列列表显示示,这就就要求系系统具有有分页显显示数据据信息的的功能。在在这介绍绍两种完完成分页页功能的的方法,即即在Beean中中实现分分页功能能和在JJSP页页面中实实现分页页功能。其其实现原原理都是是在数据据库中检检索出要要显示的的记录,根根据所设设定的每每页记录录数算出出总页数数,在页页面上时时,根据据传回的的页码值值决定当当前要显显示的页页的记录录。另一种分分页的思思路是将将查询结结果缓存存在HtttpSSesssionn或有状状态Beean中中,翻页页的时候候从缓存存中取出出一页数数据来显显示,这这种方法法有两个个主要的的缺点:一是用用户可能能看到的的是过期期数据;二是如如果数据据量非常常大,则则第一次次查询便便历结果果集会耗耗费很长长时间,并并且缓存存的数据据也会占占用大量量内存,效效率明显显下降。还有一种思思路是每每次翻页页的时候候只从数数据库里里检索页页面大小小的块区区的数据据。这样样虽然每每次翻页页都需要要查询数数据库,但但查询出出的记录录数很少少,网络络传输数数据量不不大。在在Oraaclee中,这这个思路路用一句句SQLL语句可可以大致致表示清清楚,Sql=”sellectt toop ppageesizze * frrom tabble wheere id>>paggesiize*preevioous_pagge;”Bean的的一些重重要属性性代码中中有详细细注释,这这里分析析其三个个重要方方法seetQuueryysqll,quueryySqll和Paageffootter的的设计5.1 ssetQQuerrysqql(SStriing strr_taablee,Sttrinng sstr_wheere,Strringg htttpffilee,Sttrinng ppagees)方方法 功能:接收参参数组织织SQLL语句,并并返回RResuultSSet检检索结果果集。传入参数数:sttr_ttablle,分分页显示示的表名名;sttr_wwherre,分分页的wwherre条件件;htttpffilee,具体体的JSSP文件件;paagess,获取取地址栏栏传过来来的paagess参数。返回值:RessuleeSett类型,存存放检索索结果集集。设计思路路:接收收输入的的四个参参数 根据输输入参数数生成检检索SQQL语句句 调调用quueryySqll方法在在数据库库中检索索 将检检索结果果放入结结果集并并返回。5.2 qquerrySqql(SStriing Couuntssql,Strringg Paagissql)方方法 功能:通过接接收参数数进行页页面首尾尾页判断断。传入参数数:Coounttsqll,总记记录的QQuerry字符符串(形形式如sseleect couunt(*) froom ttabllenaame);Paggisqql,要要分页的的Queery字字符串(形形式为sseleect * ffromm taableenamme wwherre);rrequuestt,参数数传递过过程中的的变量(用用来控制制翻页时时的paagess变量)。返回值:RessuleeSett类型,存存放检索索结果集集。设计思路路:接收收输入参参数 根根据输入入SQLL语句调调用sqql_bbeann的exxecuuteQQuerry方法法检索数数据库 将检索索结果放放入结果果集并返返回。5.3 PPageeFoooterr()方方法 功能:在HTTML页页面中输输出分页页栏。返回值:字符串串类型。设计思路路:使用用本类中中的其他他方法得得到分页页信息 将分分页信息息以HTTML形形式存入入字符串串 返返回字符符串给调调用者JSP页面面中实现现分页功功能可以以根据不不同的需需求,方方便灵活活地作出出改动,但但去不再再具备BBeann的封装装、安全全、和重重用等优优势,在在这里就就不在举举例说明明了。(四)界面面设计1、界面头头、尾设设计为了节省代代码的编编写量,我我们要考考虑将一一些常用用的、重重复性的的代码单单独提取取出来,然然后将其其包含到到需要的的文件中中。JSP的文文件包含含有两种种方法。其其一,使使用编译译指令IInclludee,例如如:<%inncluude fille=”heaad.jjsp”%>Incluude指指令的作作用是在在JSPP中包含含一个静静态文件件,同时时解析这这个文件件中的JJSP语语句,iinclludee指令将将会在JJSP编编译时插插入一个个包含命命令文本本或代码码的文件件.当使使用inncluude指指令时,这个包包含的过过程就当当是静态态的。静静态的包包含就是是只将插插入这个个被包含含的文件件到JSSP文件件中去,这这个包含含的文件件可以是是JSPP文件、HHTMLL文件或或者文本本文件。如如果包含含的是JJSP文文件,将将会执行行这个包包含的JJSP文文件中的的代码。使用JSPP的操作作指令<<JSPP:inncluude pagge=”heaad.jjsp”>它也允许包包含静态态或是动动态文件件.包含含这种文文件的结结果是不不同的,若是静静态文本本,那么么这种包包含仅仅仅是将包包含文件件的内容容加到JJSP文文件中去去,如果果这个文文件是动动态的,那么这这个被包包含文件件先会被被JSPP编译器器执行,然后将将执行结结果给引引用者.前者属于JJSP编编译指令令,它在在JSPP文件编编译期间间将被包包含的文文件内容容插入调调用的位位置,作作为自己己的一部部分进行行编译;而后者者为操作作指令,在JSSP文件件被客户户端访问问时,执执行编译译后的.claass文文件时被被包含进进来。另另一个不不同之处处是,后后者可以以用<jjsp:parram namme=”parraNaame” vaaluee=”parraVaaluee|<%=jssp eexprresssionn%>”/>子子句给被被包含文文件传送送一个或或多个参参数。2、 分类查看信信息模块块设计作为员工用用户,要要求能快快捷方便便地浏览览管理员员发布的的信息。这这就要求求系统具具备逻辑辑清晰明明确的分分类管理理和浏览览功能。员工用户访访问的页页面左侧侧自上而而下依次次为系统统统计信信息、热热点信息息及最新新信息,这这三个栏栏目方便便用户一一目了然然地了解解管理信信息系统统的大致致状况,以以便决定定是否继继续访问问系统。部门信息息查看页页面布局局左侧为为下属部部门列表表,若用用户访问问的为一一级部门门的信息息,则列列出当前前部门下下属的二二级部门门,用户户可单击击某个链链接,访访问属于于本二级级部门的的信息,此此时所选选中的二二级部门门名称会会突出显显示。本功能实现现的思路路主要为为参数判判断,根根据对rrequuestt的参数数进行判判断。3、 信息记录管管理模块块设计管理员对信信息的管管理主要要有三个个操作:信息的的添加、删删除和修修改。添添加操作作的界面面效果如如图3-1所示示。图3-1添添加页面面效果图图4、 管理员管理理模块设设计用户管理需需要有总总管理员员添加、删删除和修修改分类类管理员员用户等等操作。5、 上传附件模模块设计计本系统提供供附件上上传功能能,上传传至服务务器的附附件存入入程序指指定的目目录中。如如图3-2所示示图3-2附附件上传传页面(五)程序序测试及及运行1、难点与与技巧1.1 JSPP页面异异常处理理JSP程序序运行出出现错误误,将会会自动抛抛出exxcepptioon异常常,默认认情况下下,JSSP程序序没有设设置errrorrpagge属性性时,会会将出错错跟踪结结果输出出至客户户端。JJSP程程序中若若有<% ppagee errrorrpagge=”mannageer/eerroor.jjsp”%>则则遇到出出错时,将显示示errror.jspp中的内内容,要要注意的的是,在在errror.jspp文件中中,需要要将其ppagee编译指指令的iiserrrorrpagge属性性值设为为truue,否否则将会会出错.2.2中文文乱码问问题的解解决分析析Java的的javvac和和javva这两两个命令令在编译译和运行行javva程序序是会检检测系统统字符集集,然后后按照系系统字符符集来对对字符集集进行转转换.例例如,当当在英文文系统中中运行jjavaac时,它所选选用的eencoode的的编码字字符集就就是ISSO 888599-1,也就是是说,它它在编译译时会将将所有的的ISOO 88859-1的字字符创转转换成UUniccodee,此时时如果程程序中存存在其他他字符集集,比如如GBKK,则不不做任何何转换,仍然按按照GBBK字符符正常输输出.因因此,在在英文环环境下,中文可可以正常常输出.在使用用JDBBC时,有些DDrivver会会将从数数据库中中读出的的中文自自动地转转换成UUniccodee,而有有些不会会,如果果Driiverr做过转转换而系系统又再再做一次次,就会会出现问问题,也也就是常常见的”?”。在JSP中中,我们们通过在在HTMML的hheadd标签中中加入以以下meeta信信息解决决这个问问题<metaa HTTTP-EQUUIV=”conntennt-ttypee” COONTEENT=”texxt/hhtmll; ccharrsett=GBBK”>其作用是告告诉客户户端浏览览器,这这个HTTML为为GBKK编码文文件。在在JSPP中加入入以下的的一句编编译指令令,定义义JSPP程序使使用字符符集为GGBK:<%paage conntenntTyype=”texxt/hhtmll; ccharrsett=GBBK”%>3.3 在JSSP和BBeann中加载载数据库库驱动使用JDDBC与与数据库库的连接接可以使使用连接接池,也也可以在在JSPP程序中中或是在在Beaan中加加载数据据库驱动动,后者者常用的的又有JJDBCC-ODDBC Briidgee和直接接连接数数据库的的纯jaava驱驱动两种种途径, JDBBC-OODBCC Brridgge技术术可以实实现JDDBC到到ODBBC的转转化,这这样jaava程程序就可可以访问问带ODDBC专专用驱动动程序的的数据库库,直接接连接数数据库的的纯jaava驱驱动将JJDBCC调用转转换为数数据库系系统直接接使用的的网络协协议,允允许从客客户机直直接调用用数据库库系统的的服务。<bodyy><%Claass.forrNamme(“oraaclee.jddbc.driiverr.OrraclleDrriveer”).nnewIInsttancce(); Strringg urrl=” jdbbc:ooraccle:thiin:loccalhhostt:15521:dattabaaseNNamee”; Strringg usser=”useerNaame”; Strringg paasswwordd=”passswoord”; Connnecctioon cconnn=DrriveerMaanagger.gettConnnecctioon(uurl,usee,paasswwordd); Staatemmentt%>3.4 注意事事项 建建立Beean 类的时时候要注注意,jjavaa的类名名必须和和类的文文件名称称相同,否则编编译将会会出错。JSP应应用系统统的文件件结构。在Weblogic的配置文件weblogic.xml中加入如下标签:<weblogic-web-app> <coontaaineer-ddesccripptorr> <<inddex-dirrecttoryy-ennablled>>truue</inddex-dirrecttoryy-ennablled>> </cconttainner-desscriiptoor> <coonteext-rooot>/</cconttextt-rooot>></webbloggic-webb-appp>三、结论通过以上的的开发流流程和一一些重要要步骤分分析,这这样一个个基本上上满足需需求的管管理信息息系统已已经初步步完成,如如前所述述,程序序中更多多使用的的是JSSP的基基本方法法和技巧巧。本系统具备备较完善善的信息息管理功功能,通通过使用用本系统统,企业业内部员员工用户户和高层层管理用用户实现现直达式式交流,是是沟通更更具备实实时性和和准确性性,能够够有效地地提高工工作效率率。它更更大的优优点是在在于它具具有高可可靠性和和方便的的移植性性,以及及优秀的的平台开开发解决决方案。参考文献1 JJSP数数据库开开发 汪汪孝宜 刘中兵兵 等编编著 电电子工业业出版社社出版 20005.55 22MMedyyckyyj-sscottt DD. DDisccoveerinng EEnviironnmenntall Daata:Mettadaatabbasee,Neetwoork Infformmatiion Ressourrce Toool aand GENNIE Sysstemm. II.J.GISS,19996,10(1):65843Gorre AA. UUndeersttanddingg Ouur PPlannet in 21sst CCentturyy. TThe Ausstraali a SSurvveyoor,119988,433(2):899911 44 Ecllipsse入门门开发与与实践 张桂桂元 贾燕枫枫编著 人民邮邮电出版版社出版版 20006.1第 21 页 共 21 页