1、XXXX大学毕业论文基于JSP的医药管理系统设计与实现专业名称计算机科学与技术班级200804学生姓名XXX指导教师XXX完成时间2012年4月河北经贸大学毕业论文I摘要随着科学技术的发展和人们生活水平的提高,人们对于医药产品的需求迅速增加,管理药品信息成为制药行业的各项工作中不可缺少的一部分。本医药管理系统是为了管理药品信息而设计的。以前的数据处理要用手工操作,工作量大,出错率高,出错后也不易更改。而本医药管理系统使用起来,效率高,速度快,也方便使用和修改。根据实际需求,本医药管理系统是在WINDOWSXP操作系统环境下,以MYECLIPSE86为前台开发工具,采用JSP技术,用MYSQLS
2、ERVER50为后台数据库开发工具来实现的。主要实现医药管理、类别管理、购买药品、销售管理、进货/需求管理和系统管理等功能。本医药管理系统首先输入和存储一些基本的数据资料,例如本系统中的药品信息和销售信息、进货/需求信息,对于这些信息和数据能方便的进行添加、修改、查询和删除。其次,为了方便管理者管理数据,对各种数据进行统计,如统计库存信息,销售信息和进货/需求信息等。关键词医药管理系统;药品信息管理;JSP技术河北经贸大学毕业论文IIABSTRACTWITHTHEDEVELOPMENTOFSCIENCEANDTECHNOLOGYANDPEOPLESLIVINGSTANDARDSIMPROVE,
3、THEDEMANDFORPHARMACEUTICALPRODUCTSINCREASEDRAPIDLY,THEMANAGEMENTOFDRUGINFORMATIONHASBECOMEANINDISPENSABLEPARTOFTHEWORKOFTHEPHARMACEUTICALINDUSTRYTHEMANAGEMENTSYSTEMOFTHEMEDICINEISDESIGNEDTOMANAGEDRUGINFORMATIONTHEPREVIOUSDATAPROCESSINGTOUSEMANUALOPERATION,AHEAVYWORKLOAD,ERRORRATE,ERRORISNOTEASYTOCHA
4、NGETHEUSEOFTHEPHARMACEUTICALMANAGEMENTSYSTEM,HIGHEFFICIENCY,FAST,EASYTOUSEANDMODIFYACCORDINGTOTHEACTUALNEEDSOFTHEPHARMACEUTICALMANAGEMENTSYSTEMISINTHEWINDOWSXPOPERATINGSYSTEMENVIRONMENT,THEMYECLIPSE86DEVELOPMENTTOOLSFORTHEFRONT,USINGJSPTECHNOLOGY,MYSQLSERVER50BACKENDDATABASEDEVELOPMENTTOOLSMEDICALMA
5、NAGEMENT,CATEGORYMANAGEMENT,BUYINGDRUGS,SALESMANAGEMENT,PURCHASE/DEMANDMANAGEMENTANDSYSTEMMANAGEMENTFUNCTIONSMANAGEMENTSYSTEMOFTHEMEDICINEFIRSTENTERANDSTORESOMEOFTHEBASICDATA,SUCHASDRUGINFORMATIONANDSALESINFORMATIONINTHISSYSTEM,PURCHASE/DEMANDFORSUCHINFORMATIONANDDATACANEASILYADD,MODIFY,QUERYANDDELE
6、TESECONDLY,INORDERTOFACILITATEMANAGEMENTOFDATAMANAGERS,AVARIETYOFDATASTATISTICS,SUCHASSTATISTICALINVENTORYINFORMATION,SALESINFORMATION,ANDPURCHASE/DEMANDINFORMATIONKEYWORDSPHARMACEUTICALMANAGEMENTSYSTEMINFORMATIONMANAGEMENTJSPTECHNOLOGY河北经贸大学毕业论文I目录1绪论111系统开发背景112系统开发意义113文章内容安排12系统开发环境和开发工具简介321系统开
7、发环境322系统开发工具简介3221MYSQL数据库介绍3222JSP技术概述33系统需求分析531可行性分析5311技术可行性5312经济可行性532系统功能需求533数据流图64系统总体设计841系统结构设计8411逻辑分层结构设计9412定义ACTIONFORM9413持久层结构设计10414业务层结构设计11415页面结构设计1142数据库设计12421实体对象设计12422数据库表结构12423数据库ER图145系统详细设计1751公共类设计18河北经贸大学毕业论文II511HIBERNATE过滤器18512SUPERDAO类19513BASEACTION类20514DELETEAC
8、TION类21515字符串工具类2252系统登陆模块设计2353医药管理模块设计24531药品对象持久层设计26532药品信息的添加与修改26533分页查看所有药品27534查看药品详细信息27535查询药品28536高级查询28537查看库存2954类别管理模块设计30541药品类别持久层设计30542药品类别的添加30543分页查看类别信息31544类别的修改与删除31545药品类别统计3155购买药品模块设计32551购买药品33552查看选购3356销售管理模块设计34561查看明细和今日明细35562日期查询35563销售排行3557进货/需求管理模块设计3658系统管理模块设计37
9、结论40致谢41参考文献42河北经贸大学毕业论文1基于JSP的医药管理系统设计与实现1绪论11系统开发背景当今时代是飞速发展的信息时代。在各行各业中都离不开信息的处理,这正是计算机被广泛用于信息管理系统的原因。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的信息管理,计算机能够充分的发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。随着我国市场经济的蓬勃发展和人们对医药产品需求的迅速增加,医药行业正处于一个高速发展的时期。行业的快速发展必然导致竞争的加剧,想要在激烈的市场竞
10、争中谋求发展,客观上要求企业必须加强内部管理,提高运营效率。另外,由于医药产品种类繁多,销售模式特殊,业务量大,单凭手工管理已很难适应工作的需要。医药作为一个关系人们健康的特殊行业,国家对医药行业又有一些不同于其他行业的管理政策,这些都加大了管理的难度。如何尽快建立和完善现代企业的信息管理机制问题,已成为医药企业发展的关键所在。12系统开发意义根据实际情况和系统的开发背景来看,开发本医药管理系统的意义在于能够集中处理药品的进销存业务,提供快速的药品查询功能、快速的统计药品信息、销量信息,对药品进行高效的管理以满足管理者和消费者的需求。13文章内容安排本文主要阐述了本医药管理系统的整体开发过程。
11、介绍了系统的开发河北经贸大学毕业论文2环境以及开发工具,对于设计思想和设计流程也做出了全面的叙述,在数据库各个数据表之间的具体关联方面也做出了详细说明,并且具体剖析了系统各个功能的实现过程以及详细设计过程。具体内容安排如下第一章介绍系统的开发背景和开发意义,以及文章的内容安排;第二章介绍系统开发的硬件环境和软件环境,以及开发工具和核心技术;第三章对系统进行需求分析,主要对系统进行可行性分析,明确系统要实现的目标和所完成的功能;第四章完成系统的详细设计,包括系统功能结构图,业务流程图以及数据库的ER图;第五章完成系统的详细实现,包括公共类的设计和各个模块的设计。河北经贸大学毕业论文32系统开发环
12、境和开发工具简介21系统开发环境硬件平台CPU200GHZ内存2G软件平台操作系统WINDOWSXP数据库MYSQLSERVER50开发工具MYECLIPSE86开发工具包JDK16JSP服务器TOMCAT70浏览器IE822系统开发工具简介221MYSQL数据库介绍MYSQL是一个小型关系型数据库管理系统,开发者为瑞典MYSQLAB公司。在2008年1月16号被SUN公司收购。而2009年,SUN又被ORACLE收购。MYSQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内。这样就增加了速度并提高了灵活性。SQL是用于访问数据库的最常用标准化语言
13、。MYSQL软件采用了GPL(GNU通用公共许可证)。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MYSQL作为网站数据库。222JSP技术概述JSP技术使用JAVA编程语言编写XML的TAGS和SCRIPTLETS,来封装产生动态网页的处理逻辑。网页还通过TAGS和SCRIPTLETS访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于WEB的应用程序的开发变得迅速和容易。河北经贸大学毕业论文4WEB服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同
14、JSP文件中的HTML代码一起返回给客户。插入的JAVA程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。JSP与JAVASERVLET一样,是在服务器端执行的,通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。JSP页面由HTML代码和嵌入其中的JAVA代码所组成。服务器在页面被客户端请求以后对这些JAVA代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。JAVASERVLET是JSP的技术基础,而且大型的WEB应用程序的开发需要JAVASERVLET和JSP配合才能完成。JSP具备了JAVA技术的简单易用,完全的面向对象,具有平台无关性且
15、安全可靠,主要面向因特网的所有特点。自JSP推出后,众多大公司都支持JSP技术的服务器,如IBM、ORACLE、BEA公司等,所以JSP迅速成为商业应用的服务器端语言。河北经贸大学毕业论文53系统需求分析31可行性分析可行性分析是在进行初步调查后所进行的对系统开发的必要性和可能性的研究,所以也称为可行性研究。所谓可行性应该包括必要性和可能性两个方面。没有必要性的项目是不应该进行的。一般地,软件领域的可行性分析主要考虑两个因素技术可行性和经济可行性。311技术可行性根据系统目标来衡量所需的技术是否具备,本医药管理系统是一个数据库管理和查询的系统,软件技术方面采用的是MICROSOFTWINDOW
16、SXPPROFESSIONAL版的操作系统,MYSQLSERVER50为后台数据库开发工具,MYECLIPSE86集成开发工具。JDK16开发工具包,TOMCAT70服务器,IE8浏览器以及JSP技术,能够实现本医药管理系统,以满足用户需求。312经济可行性医药进销存管理已成为医药管理工作中不可缺少的部分,开发一个医药管理系统具有很强的经济价值。本医药管理系统提供快速的药品查询功能、快速的统计药品信息、销售信息等,对药品进行高效的管理以满足管理者的需求。所以,本医药管理系统在经济型上有很强的实际价值。32系统功能需求根据实际情况分析,本医药管理系统的应具有主要功能包括1医药管理添加药品、查看药
17、品、高级查询、查看库存;2类别管理添加类别、查看类别、类别统计;3购买药品选购药品、查看选购;4销售管理查看明细、今日明细、日期查询、销售排行;5进货/需求管理添加进货、查看进货;6系统管理添加管理员、查看所有管理员、修改密码、系统初始化、退出系统。河北经贸大学毕业论文633数据流图数据流程图DATAFLOWDIAGRAM,简称DFD是数据流程分析所使用的主要工具之一,是组织中信息运动的抽象,是管理信息系统逻辑模型的主要形式。这个模型不涉及硬件、软件、数据结构与文件组织,它与对系统的物理描述无关,只是用一种图形及与此相关的注释来表示系统的逻辑模型,即所开发的系统在管理信息处理方面要做什么。医药
18、管理系统零层数据流图如图31所示。图31医药管理系统零层数据流图医药管理系统一层数据流图如图32、图33、图34、图35所示。图32医药管理系统一层数据流图P医药管理系统F1药品信息F2药品类别信息F3药品销售信息F4用户信息D1药品信息表D2药品类别信息表D3销售明细信息表D4用户信息表F11药品信息添加F12药品信息删除F13药品信息修改医药管理P1F14药品信息查询D1药品信息表河北经贸大学毕业论文7图33医药管理系统一层数据流图图34医药管理系统一层数据流图图35医药管理系统一层数据流图F21药品类别信息添加F22药品类别信息删除F23药品类别信息修改类别管理P2F24药品类别信息统计
19、D2药品类别信息表2药品类别信息表D1P医药管理系统信息F31购买药品信息添加F32购买药品信息删除F33药品销售信息查询销售管理P3F34药品销售信息统计D3销售明细信息表2药品类别信息表D1P医药管理系统信息F41用户信息添加F42用户信息删除F43用户信息修改系统管理P4D4用户信息表2药品类别信息表D1P医药管理系统信息河北经贸大学毕业论文84系统总体设计41系统结构设计在开发项目之前,首先要对软件的结构进行设计,也称之为软件架构,此过程是对软件的整体结构的设计。如软件的逻辑分层结构、结构的实现、数据库等等,特别是在JAVA的大型项目中,还需要设计出程序中包结构及接口等,非常复杂,需要
20、程序员进行全面的考虑。对于医药管理系统的整体设计逻辑分层结构设计、定义ACTIONFORM、持久层结构设计、业务层结构设计、页面结构设计以及数据库设计。系统功能结构图如图41所示。图41系统功能结构图医药管理系统医药管理类别管理购买药品销售管理进货/需求管理系统管理添加药品查看药品高级查询查看库存添加类别查看类别类别统计选购药品查看选购查看明细今日明细日期查询销售排行添加进货查看进货添加管理员查看管理员修改密码系统初始化退出系统河北经贸大学毕业论文9411逻辑分层结构设计遵循MVC结构进行分析,医药管理系统可分为四层结构,分别为表示层、业务逻辑层、持久层与数据库层,四层结构图如图42所示。图4
21、2四层结构图对于四层结构的具体实现如图43所示。图43四层结构实现图412定义ACTIONFORMACTIONFORM是简单的JAVABEAN,它主要用来保存用户所输入的表单数据,ACTIONFORM要获取这些数据需要通过ACTIONFORM对象进行传递。ACITONFOMR对表单数据进行了封装,在JSP页面与ACTION对象中提供了交互访问的方法。在使用过程中,可通过继承ORGAPACHESTRUTSACTIONFORM对象来创建需要的ACTIONFORM对象,项目中所涉及到的ACTIONFORM对象如图44所示。医药管理系统表示层STRUTS框架业务逻辑层STRUTS框架持久层HIBERN
22、ATE框架数据库层MYSQL数据库视图JSP/ACTIONFORMSTRUTS标签控制器ACTIONSTRUTSCONFIGXML持久化HIBERNATEAPIHIBERNATECFGXML医药管理系统MYSQL数据库河北经贸大学毕业论文10图44ACTIONFORM对象图413持久层结构设计持久层结构通过HIBERNATE框架进行设计,由于HIBERNATE对不同对象的增、删、改、查操作都具有一定的共性,如添加数据使用SAVA方法、删除数据使用DELETE方法等,项目中将这些具有共性的操作抽取出来,封装成一个类,其他数据库操作对象可继承此类来拥有这些方法,从而减少程序中的多余代码,持久层结构
23、设计图如图45所示。图45持久层结构设计图ACTIONFORMCOMLYQSTRUTSFORM药品MEDICIENFORMCATEGORYFORMSELLDETAILFORMUSERFORM类别销售明细用户COMLYQDAOSAVEINOBJOBJECTVOIDSAVEORUPDATEINOBJOBJECTVOIDDELETEINOBJOBJECTVOIDFINDBYHQLINHQLSTRINGLISTDELETEBYHQLINHQLSTRINGVOIDUNIQUERESULTINHQLSTRING,INWHEREOBJECTOBJECTFINDPAGINGINHQLSTRING,INOFFS
24、ETINT,INLENGTHINT,INWHEREOBJECTLISTSUPPERDAOCATEGORYDAOMEDICINEDAOSELLDAOUSERDAO河北经贸大学毕业论文11414业务层结构设计业务层结构主要通过STUTS框架进行设计,由STRUTS的中央控制器对各种请求操作进行控制,并通过相应的ACTION对其进行业务处理,项目中所用到的ACTION对象及关系如图46所示。图46ACTION对象关系图415页面结构设计医药管理系统的页面结构采用框架进行设计,通过HTML语言中的呃标签及标签将页面分成三个部分,分别为页面头部、页面导航及内容页面,页面结构图如图47所示。图47页面结构
25、图COMLYQSTRUTSACTIONDELETEREQMEDACTIONDELETEMEDICINEACTIONDELETEACTIONLOOKUPDISPATCHACTIONMEDICINEACTIONSYSTEMACTIONCATEGORYACTIONBASEACTIONSELLACTIONREQUIREACTIONLOGINACTIONDISPATCHACTIONACTION页面头部页面导航页面内容河北经贸大学毕业论文1242数据库设计数据库设计的内容是对于一个确定的环境,进行符合应用语义的逻辑设计,以及提供一个确定存贮结构和物理设计,建立实现系统目标,并能有效存取数据和数据模型。其主
26、要任务是设计出能满足各种应用要求的数据模型。421实体对象设计在使用HIBERNATE框架的项目中,实体对象的确立是项目中的关键,实体对象与数据库中的数据表相对应,并通过O/R映射建立实体与数据库的联系,HIBERNATE完全通过操作实体来操作数据库,所以首先要确定项目中的实体对象。在医药管理系统中,实体对象及其关系如图48所示。图48实体对象关系图422数据库表结构本系统的数据库表设计主要包括用户信息表、药品信息表、药品类别信息表、销售明细信息表。1用户信息表TB_USER,如表41所示。COMLYQPERSISTENCECATEGORYMEDICINESELLDETAILUSERCATEG
27、ORYHBMXML药品类别药品信息销售明细用户MEDICINEHBMXMLSELLDETAILHBMXMLUSERHBMXML多对一一对多多对一河北经贸大学毕业论文13表41用户信息表字段名数据类型长度是否主键允许空描述IDINTEGER是否自动编号USERNAMEVARCHAR50否否用户名PASSWORDVARCHAR50否否密码CREATETIMEDATETIME否是创建时间2药品信息表TB_MEDICINE,如表42所示。表42药品信息表字段名数据类型长度是否主键允许空描述IDINTEGER是否自动编号MEDNOVARCHAR100否否药品编码NAMEVARCHAR200否否药品名称F
28、ACTORYADDVARCHAR200否是出厂地址DESCRIPTIONMEDIUMTEXT否是药品描述PRICEDOUBLE否否药品单价MEDCOUNTINTEGER否是药品数量REQCOUNTINTEGER否是需求数量PHOTOPATHVARCHAR255否是药品图片CATEGORYIDDATETIME否是类别编号河北经贸大学毕业论文143药品类别信息表TB_CATEGORY,如表43所示。表43药品类别信息表字段名数据类型长度是否主键允许空描述IDINTEGER是否自动编号NAMEVARCHAR100否否类别名称DESCRIPTIONTEXT否是类别描述CREATETIMEDATETIM
29、E否是创建时间4销售明细信息表TB_SELLDETAIL,如表44所示。表44药品销售信息表字段名数据类型长度是否主键允许空描述IDINTEGER是否自动编号SELLNAMEVARCHAR200否否药品名称SELLPRICEDOUBLE否否药品单价SELLCOUNTINTEGER否否销售数量SELLTIMEDATETIME否否销售时间MEDIDINTEGER否是药品编号USERIDINTEGER否是用户编号423数据库ER图1根据实际需求和设计规划得出的实体有用户实体、药品实体、类别实体、销售明细实体,各实体的属性图如图49、图410、图411、图412所示。河北经贸大学毕业论文15图49用户
30、实体属性图图410药品实体属性图图411类别实体属性图药品药品编码药品名称药品数量药品单价出厂地址药品描述药品类别药品图片需求数量用户用户名密码创建时间类别类别名创建时间类别描述河北经贸大学毕业论文16图412销售明细实体属性图2各实体之间的关系ER图如图413所示。图413各实体关系ER图销售明细药品编码药品名称药品单价销售数量销售时间操作员销售金额N药品类别用户销售明细管理MNM1NN添加销售管理管理MMN河北经贸大学毕业论文175系统详细设计在编写代码之前,需要对项目做出一些准备工作,如项目环境的搭建、项目所涉及到的第三方类库的支持、WEBXML的配置等。在医药进销存管理系统中,主要涉及
31、到STRUTS框架HIBERNATE框架及JFREECHART组件的应用,因此在开发项目之前,需要添加他们的类库支持。1配置WEBXML,主要代码如下ACTIONORGAPACHESTRUTSACTIONACTIONSERVLETACTIONDO2配置STRUTSCONFIGXML,主要代码如下3配置HIBERNATECFGXML,主要代码如下ORGHIBERNATEDIALECTMYSQLDIALECTJDBCMYSQL/LOCALHOST3306/DB_DATABASE25ROOTROOTCOMMYSQLJDBCDRIVERUPDATETRUE51公共类设计在JAVA程序开发中,如果一个功
32、能反复被调用,可以将这个功能抽取出来封装为一个类做为公共类,在需要此功能的地方通过继承此类进行实现。公共类实质是代码的重用的一种方式,在面向对象的开发模式中,经常被使用,它可以简化程序中的代码提高程序的可读性,医药管理系统中的公共类设计如下。511HIBERNATE过滤器在WEB项目中,以普通方式使用HIBERNATE将无法解决HIBERNATE延迟加载,如下图所示。当有一个业务请求查询数据时,首先要开启SESSION对象,然后HIBERNATE对数据进行查询,再关闭SESSION对象,然后通过JSP页面来显示数据。在这一过程中,如果查询数据时使用了延迟加载,当JSP页面显示数据信息时,HIB
33、ERNATE将抛出异常信息,因此此时SESSION已经关闭,HIBERNATE不再对数据进行操作。通过过滤器管理HIBERNATE的SESSION对象则可以避免此问题。主要代码如下河北经贸大学毕业论文19PUBLICVOIDDOFILTERSERVLETREQUESTREQUEST,SERVLETRESPONSERESPONSE,FILTERCHAINCHAINTHROWSIOEXCEPTION,SERVLETEXCEPTIONTRYCHAINDOFILTERREQUEST,RESPONSEFINALLYSESSIONSESSIONSESSIONTHREADLOCALGETIFSESSIONN
34、ULLIFSESSIONISOPENSESSIONCLOSETHREADLOCALREMOVEPUBLICSTATICSESSIONGETSESSIONSESSIONSESSIONSESSIONTHREADLOCALGETIFSESSIONNULLSESSIONFACTORYOPENSESSIONTHREADLOCALSETSESSIONRETURNSESSION512SUPERDAO类SUPERDAO类为项目中所有数据库操作的父类,此类中封装了数据库操作的常用方法。在此类中,由于HIBERNATE对数据的操作都需要用到SESSION接口,此类中定义了一个PROTECTED类型的SESSION
35、对象,为其子类提供方便。主要代码如下PUBLICCLASSSUPPERDAOPROTECTEDSESSIONSESSIONNULLPUBLICVOIDSAVEOBJECTOBJTRY河北经贸大学毕业论文20SESSIONHIBERNATEFILTERGETSESSIONSESSIONBEGINTRANSACTIONSESSIONSAVEOBJSESSIONGETTRANSACTIONCOMMITCATCHEXCEPTIONEEPRINTSTACKTRACESESSIONGETTRANSACTIONROLLBACKPUBLICVOIDDELETEOBJECTOBJTRYSESSIONHIBERN
36、ATEFILTERGETSESSIONSESSIONBEGINTRANSACTIONSESSIONDELETEOBJSESSIONGETTRANSACTIONCOMMITCATCHEXCEPTIONEEPRINTSTACKTRACESESSIONGETTRANSACTIONROLLBACK513BASEACTION类BASEACTION类是业务层有一个超类对象,它继承了STRUTS的DISPATCHACTION类,同时还为子类对象提供公用方法。STRUTS的DISPATCHACTION类继承ACTION类,此类在处理请求时首先要执行EXECUTE方法,然后通过控制器再转发到相应的方法进行业务处
37、理,如果对系统中涉及到的ACTION都编写一个验证方法,程序代码的重负性太高,则不能体现出面向对象的设计模式,所以将其单独封装BASEACTION类中,此类通过重写ACTION类的EXECUTE方法对用户身份进行验证。主要代码如下PUBLICCLASSBASEACTIONEXTENDSDISPATCHACTIONPROTECTEDINTRECPERPAGE3河北经贸大学毕业论文21PROTECTEDLOCALELOCALENULLPROTECTEDMESSAGERESOURCESMESSAGENULLPUBLICACTIONFORWARDEXECUTEACTIONMAPPINGMAPPING,
38、ACTIONFORMFORM,HTTPSERVLETREQUESTREQUEST,HTTPSERVLETRESPONSERESPONSETHROWSEXCEPTIONTHISLOCALETHISGETLOCALEREQUESTTHISMESSAGETHISGETRESOURCESREQUESTIFREQUESTGETSESSIONGETATTRIBUTE“USER“NULLRETURNMAPPINGFINDFORWARD“LOGIN“RETURNSUPEREXECUTEMAPPING,FORM,REQUEST,RESPONSE514DELETEACTION类公共类DELETEACTION主要用
39、于项目中LOOKUPDISPATCHACTION的请求进行处理,它继承LOOKUPDISPATCHACTION类,此类中同样重写了EXECUTE方法对用户身份做出验证,当用户身份不失败时,将进行错误处理。同时,此类还重写了LOOKUPDISPATCHACTION类中的GETKEYMETHODMAP方法,添加了两个按钮对象的KEY。主要代码如下PUBLICCLASSDELETEACTIONEXTENDSLOOKUPDISPATCHACTIONPUBLICACTIONFORWARDEXECUTEACTIONMAPPINGMAPPING,ACTIONFORMFORM,HTTPSERVLETREQUE
40、STREQUEST,HTTPSERVLETRESPONSERESPONSETHROWSEXCEPTIONIFREQUESTGETSESSIONGETATTRIBUTE“USER“NULLRETURNMAPPINGFINDFORWARD“LOGIN“RETURNSUPEREXECUTEMAPPING,FORM,REQUEST,RESPONSEPROTECTEDMAPGETKEYMETHODMAPMAPMAPNEWHASHMAPMAPPUT“BUTTONDELETESELECTED“,“SELECTED“MAPPUT“BUTTONDELETEALL“,“ALL“河北经贸大学毕业论文22RETURN
41、MAP515字符串工具类在一个WEB项目中,字符串是经常被操作的对象,为简化程序的代码及提高程序的可读性,对经常用到的字符串处理方法,可以封装一个字符串工具类对其进行操作。比如JSP页面的多选框,它提交的参数值为数组类型,在数据库的操作过程中需要将其转换为字符串类型;在超链接中,如果加入中文参数将不能被浏览器解析,需要对其进行一定的处理才可以使用。类似于这种操作,在程序中使用的非常频繁,将其封装为一个公共类中,是一种良好的决解方案。在医药管理系统中,封装了一个名称为STRINGUTIL的字符串工具类,用于对字符的特殊处理,此类中均为静态方法。主要代码如下PUBLICCLASSSTRINGUTI
42、LPUBLICSTATICSTRINGENCODEURLSTRINGSTRYSURLENCODERENCODES,“GBK“CATCHEXCEPTIONEEPRINTSTACKTRACERETURNSPUBLICSTATICSTRINGENCODEZHSTRINGSTRYSNEWSTRINGSGETBYTES“ISO88591“,“GBK“CATCHEXCEPTIONEEPRINTSTACKTRACERETURNS河北经贸大学毕业论文2352系统登陆模块设计系统登录是一个对用户身份验证的过程,只有登录成功的用户才可以对系统进行操作,否则不能对系统进行管理维护,它是系统的一道安全门。1用户登录页
43、面如图51所示。图51登录页面图2用户登录时查询用户登录信息,主要代码如下PUBLICUSERLOGINSTRINGUSERNAME,STRINGPASSWORDUSERUSERNULLTRYSESSIONHIBERNATEFILTERGETSESSIONSESSIONBEGINTRANSACTIONSTRINGHQL“FROMUSERUWHEREUUSERNAMEANDUPASSWORD“QUERYQUERYSESSIONCREATEQUERYHQLSETPARAMETER0,USERNAMESETPARAMETER1,PASSWORDUSERUSERQUERYUNIQUERESULTSES
44、SIONGETTRANSACTIONCOMMITCATCHEXCEPTIONEEPRINTSTACKTRACE河北经贸大学毕业论文24SESSIONGETTRANSACTIONROLLBACKRETURNUSER3处理用户登录请求的主要代码如下PUBLICCLASSLOGINACTIONEXTENDSACTIONPUBLICACTIONFORWARDEXECUTEACTIONMAPPINGMAPPING,ACTIONFORMFORM,HTTPSERVLETREQUESTREQUEST,HTTPSERVLETRESPONSERESPONSETHROWSEXCEPTIONUSERFORMUFUSE
45、RFORMFORMSTRINGUSERNAMEUFGETUSERNAMESTRINGPASSWORDUFGETPASSWORDUSERUSERNULLIFUSERNAMENULLUSERUSERDAOLOGINUSERNAME,PASSWORDIFUSERNULLREQUESTGETSESSIONSETATTRIBUTE“USER“,USERRETURNMAPPINGFINDFORWARD“MANAGE“ELSEREQUESTSETATTRIBUTE“ERROR“,“ERROR“RETURNMAPPINGFINDFORWARD“LOGINFAIL“53医药管理模块设计药品信息管理主要对药品基本
46、信息的维护,此模块包含药品信息的添加、删除、查询等操作。主要代码如下PUBLICACTIONFORWARDADDACTIONMAPPINGMAPPING,ACTIONFORMFORM,河北经贸大学毕业论文25HTTPSERVLETREQUESTREQUEST,HTTPSERVLETRESPONSERESPONSETHROWSEXCEPTIONMEDICINEMEDNULLMEDICINEFORMDFMEDICINEFORMFORMMEDICINEDAODAONEWMEDICINEDAOIFDFGETMEDCOUNT0DFSETMEDCOUNT1MEDNEWMEDICINEBEANUTILSCO
47、PYPROPERTIESMED,DFCATEGORYDAOCDNEWCATEGORYDAOCATEGORYCATEGORYCDLOADCATEGORYDFGETCATEGORYIDMEDSETCATEGORYCATEGORYFORMFILEPHOTODFGETPHOTOTRYSTRINGFNAMEPHOTOGETFILENAMEIFFNAMEINDEXOF“1STRINGENDWITHFNAMESUBSTRINGFNAMELASTINDEXOF“,FNAMELENGTHSIMPLEDATEFORMATSDFNEWSIMPLEDATEFORMAT“YYYYMMDDHHMMSSSSS“FNAMES
48、DFFORMATNEWDATEENDWITHOUTPUTSTREAMOUTNEWFILEOUTPUTSTREAMREALPATH“/“FNAMEOUTWRITEPHOTOGETFILEDATAOUTFLUSHOUTCLOSEMEDSETPHOTOPATHFNAMECATCHEXCEPTIONEEPRINTSTACKTRACE河北经贸大学毕业论文26DAOSAVEORUPDATEMEDRETURNMAPPINGFINDFORWARD“ADDSUCCESS“531药品对象持久层设计MEDICINEDAO类是药品对象的数据库操作类,它继承SUPERDAO类。此类主要包含三个方法,分别为LOADMED
49、ICINE、LOADMEDICINECATEGORY、FINDMEDICINEBYMEDNO、其中LOADMEDICINE方法与FINDMEDICINEBYMEDNO、用于根据药品ID及药品编码查询药品信息,LOADMEDICINEANDCATEGORY用于查询药品信息与药品类别信息,此方法使用内联接对药品信息表与药品类别表进行联合查询,它可以减少SQL语句的数量。532药品信息的添加与修改药品编码是药品对象的一个标识,当添加一个药品信息时需要判断药品是否已经在数据库中存在,如果存在则只需要更新药品的数量即可。修改药品与添加药品的处理过程相同。添加药品页面如图52、图53、图54所示。图52添加药品页面图53添加药品页面河北经贸大学毕业论文27图54更新药品页面533分页查看所有药品在添加药品信息以后,请求转发到查看所有药品,将对所有药品信息进行分页显示,此操作通过MEDICINEACTION类的PAGING方法进行处理。在药品的列表信息中提供了查看药品详细信息的超链接,此链接作用于药品名称上,单击此链接将进入药品查看请求中,这个请求由MEDICINEACTION类的VIEW方法进行处理。分页查看所有药品页面如