版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录摘ABSTRACT1引言1开发目--相关术--系统概--2可行分-2-经济可性-2-技术可性-2-操作可性-3-3总体计3开发、行境-3-系统功描-4-系统结--3.3.1技架构-4-3.3.2功结构-5-相关技介-6-简介6-JSP简-7-JQuery介-7简介--
简-8-
语的--Spring简9-Hibernate简介-介-10简介-104数据设-11数据表--4.1.1用信息表--4.1.2物维修息--4.1.3居信息表--4.1.4房信息表--4.1.5出死亡息--4.1.6通录信13系统E-R-5模块计-公共模功-14
5.1.1用登录-145.1.2用退出-175.1.3修密码-18用户管-5.2.1用信息195.2.2管员信管--事务管-5.3.1人信息215.3.1出死亡235.3.1房信息265.3.1居通信录--5.3.1物维修307结束-总结-32展望-33参文-33-致34
摘要本系统是一个基于发的居民社区管理系统。页面部分通过JSP对用户管理、管理员管理、人口信息登记、出生死亡登记、房产信息登记、居民通信录、物品维修登记等内容进行展示部分数据是通过访问Struts2直接带到前端页面还有部分的数据交互是通过行的,通过ajax访问返回JSON数据格式,从而避免了因为个别单独的功能而整个页面刷新,只进行局部刷新,提升了用户体验效果。数据持久化部分是通过HIBERNATE现的过面向对象的思想来操作数据库作为一个容器管理着本系统中所有的部分是直接在配置文件中编写还有很大的一部分是通过hibernate和spring的注解来实现的,这充分运用了Spring的DI和AOP思想,通过spring本系统中的技术整合到一起,从而使得系统既统一又解耦,技术思路清晰,开发效率得到进一步的提升。居民的信息管理是本系统的核心,通过本系统管理社区居民的信息,可以提供了社区工作人员的工作效率、节省了工作成本。如果有重要的事情需要查询、登记,本系统可以完全胜任,大大提高了生产力。关键词JSP;Action;;DI;AbstractThissystemisaweb-basedmanagementsystemdevelopedbycommunityresidents.PartlythroughJSPpagesforusermanagement,Administrator,demographicinformationregistration,birthdeathregistration,registrationofrealaddressbook,othercontentfordisplayservice,someofdataistakendirectlytofrontpagebyvisitingStruts2Aciton,alsointeractivedatasectioniscarriedoutbyJQuery,JSONdatareturnedaftervisitActionthroughajax,avoidingaseparatefunctionoftheandrefresh,onlypartialrefresh,enhancetheexperiencepersistencepartthroughHIBERNATErealizedthroughobject-orientedtomanipulatethedatabase.Springasacontainermanagesthissystemallthebean,partlywrittendirectlyintheconfigurationfile,thereisagreatpart,throughhibernateandspringannotationstoachieve,whichmakesfulluseofSpring'sDIByspringtheintegrationsystemsothatthesystemhasbothunifieddecouplingtechniqueclearthinking,theI
developmentefficiencycanbefurtherimproved.Informationmanagementisthecoreoftheresidentsofthissystem,thissystemthroughinformationmanagementcommunitycanprovidetheefficiencyofcommunityworkers,savingoperatingcosts.Ifthereareimportantthingstocheck,registration,thesystemcanbefullyqualified,greatlyimprovingproductivity.Keywords:;;DI;II
1言1.1发目的计算机技术的高速发展,随着社会的发展带动着各行各业的数据基数成基数增加,原始的人工操作已经远远不能平衡高速的发展需求用计算机信息技术来代替大部分的原始人工操作已经成为了必然的选择,本系统也是在这样的背景中运应而生。本系统名为居民社区管理系统,主题是社区居民,主要面向的用户是社区的居民及社区工作的管理人员,通过开发使用本系统可以使得社区居民的管理工作有条不紊,使得居民的各项事务可以顺利执行,营造一个和谐、高效的居民社区生活环境,出于以上的种种考虑,所有本人决定开发居民社区管理系统,既是作为本人的毕业设计,也可以开发中学会种种的技术,为以后的社会工作打下扎实的基础。1.2关术语DI依赖注入,是的主要技术之一,DependencyInjection简写。持久化即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化的主要应用是将内存中的对象存储在关系型数据库中当然也可以存储在磁盘文件中、XML数据文件中等。IDE:集成开发环境,也可以说成是本项目的开发工具。AOP:在软件业,AOPAspectOrientedProgramming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。是OOP的延续是软件开发中的一个热点也是Spring框架中的一个重要内容是函数式编程的一种衍生范型。利AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。1.3统概览居民社区管理系统是一套为社区居民和社区事务管理人员提供高效的社区管理的软件系统,从社区事务的工作人员而言,它可以提高社区工作人员管理社区人口事务等的效率。从社区居民的角度而言,它可以方便社区居民的生活,提供部分便捷的居民社区服务。工作人员可以收集社区的人口信息、健康信息、户口信息、出生和死亡信息,体现出本社区的人口流动情况,为社会事务的决策提供有力依据。在社区的范围内提供便捷的社区服务,方便居民,这点是根本上的惠民政策。以上就是本居民社区管理系统的系统概述。-1-
2行分析随着计算机技术的发展和网络人口的增加,人们对网络的需求也越来越苛刻,越来越贴近其生活,电子信息管理已经成为网上的一股潮流。而更多的,是要求传统行业的管理要延伸到网络,以更方便其生活、工作和学习。可行性研究的目的,就是用最小的代价在尽可能短的时间内确定问题是否能够解决。要达到这个目的,必须分析几种主要的可能解法的利弊,从而判断原定的系统规模和目标是否现实,系统完成后所能带来的效益是否大到值得投资开发这个系统的程度。因此,可行性研究实质上是要进行一次大大压缩简化了的系统分析和设计的过程也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。系统的可行性分析主要包括经济上的可行性、技术上的可行性和操作上的可行性。2.1济可行性由于居民社区管理系要求的机及相关件)和软件境(jdk+mysql+tomcat),市场上都容易购买到或从相关网站下载,系统成本主要集中在本管理系统的开发与维护上,对居民社区不会造成过重的经济负担。而一旦此系统投入使用,仅可以减少社区事务工作人员的工作强度,提高工作效率,而且方便了社区中心对本社区的人口流动及其他相关信息的管理,延续了传统的管理模式,极大限度的方便了社区管理人员,而且,目标系统不是很复杂,开发的周期较短,人员经济支出不大,所节省的大量人力、财力产生的效益将远远大于本借阅系统的开发成本,所以从经济方面讲开发此系统是可行的。2.1术可行性居民社区管理系统的开发基于模式主要包括前端应用程序的开发以及后台数据库的建立和维护两个方面。对于前者要求应具备功能完备、易于使用等特点,而对于后者则要求能建立数据一致性和完整性强、数据安全性好的库。B/S结(Browser/Server结构结构即浏览器和服务器结构它是随着技术的兴起,对结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端()实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层结构。这样就大大简化了网点端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本()。以目前的技术看,局域网建B/S结构的网络应用,并通过Internet/Intranet模式下-2-
数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如WAN,Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。目前我院内网Intranet、外网Internet和北京东方清大公司“案件、办公管理软件”就是B/S结构管理软件警在局域网各工作站通过浏览器就能实现工作业务。特别是在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、速度慢、效果优。随着Internet和的流行以往的主机/终端和C/S都无法满足当前的全球网络开放、互连、信息随处可见和信息共享的新要求,于是就出现了型模式,即浏览器/服务器结构。B/S模式最大特点是:用户可以通过WWW例览器去访问Internet上的文本、数据、图像、动画、视频点播和声音信息,这些信息都是由许许多多的服务器产生的,而每一Web服务器又可以通过各种方式与数据库服务器连接,大量的数据实际存放在数据库服务器中。网点端除了创览器,一般无须任何用户程序,只需从Web服务器上下载程序到本地来执行,在下载过程中若遇到与数据库有关的指令,由务器交给数据库服务器来解释执行,并返回给Web服务器,Web务器又返回给用户。在这种结构中,将许许多多的网连接到一块,形成一个巨大的网,即全球网。而各个企业可以在此结构的基础上建立自己的。2.1作可行性以上从经济和技术的角度来阐述了开发及使用本系统是确实可行的虽然开发本系统需要专业的技术,对于社区的使用者来讲是可以很快上手的,只要稍作使用培训,有一点基本的计算机技能就行胜任,其中绝对没有设计到十分专业的计算机知识,其工作效率比起人工或者手工操作是不可同日而语的它的可以操作性和实用性都是可以准确预见的,不存在其他任何方面的潜在风险,所以本人认为操作可行性是没问题的。3体计3.1发、运行环境服务器:数据库服务器:技术框架:、、、SpringIOC、、Struts2、easyUI服务器操作系统:Windows2003server、WindowsXP、Windows7-3-
开发语言:JAVA客户端浏览器:IE、客户端操作系统:Windows:MyEclipse/Eclipse3.2统功能描述以下从用户的角度来说明本居民社区管理系统的功能点本系统主要面向的用户的社区事务的工作人员和本社区的居民社区事务工作人员在本系统中充当着系统管理员的角色,拥有本系统的所有最高权限,而用户则具有较低的系统权限。管理员可以对本系统的所有用户进行管理,这里的用户包括管理员和系统的一般用户,管理员可以根据用户账号、用户名称、注册时间等信息对用户和管理员的信息进行查询,可以新增用户及管理员、甚至可以修改和删除本系统中的所有用户和管理员。用户管理不是本系统的核心,本居民社区管理系统的核心是一下的居民社区事务管理模块的各个功能点。包块人口信息登记、出生死亡信息登记、房产信息登记、居民通信录信息维护、物品维修登记等。管理员可以在本系统录入、查询、修改和删除登记在本居民社区管理系统中的人口信息数据。本系统可以登记本社区中的人员出生及死亡信息,通过以上的信息可以反映出本社区的人口动态,以便为基础事务的决策作有效的数据依据,以上的都是关于人口方面的功能。出了人口信息登记,本系统还可以登记本社区中的房产信息,管理员可以根据大概的房产地址和房产证数据对本社区的房产信息进行管理,包括查询、新增、删除和修改房产信息。本系统还有另外两方面功能是关于本社区中的居民的,给居民提供社区服务和共同沟通平台,里面可以登记本社区中居民详细及常用的通信工具、通信渠道,为居民的相互沟通提供的极大的便利,另外一方面就是物品维修登记,通过本功能居民可以登记需要修补的生活物品通过本系统可以准确收集居民需要社区服务的相关信息,集中统计服务数据、线下逐步落实。以上就是本居民社区管理系统的主要功能点。3.3统结构3.3.1术架构本系统采用JSP+easyUI+JQuery+Struts2+Hibernate+Spring的技术架构:和easyUI用于页面展示和数据的承载于和后台进行无刷(局部刷新交互;Struts2Action作为前后台数据交互的纽带,在本项目中起着十分重要的角色,对前端数据访问的接受及对业务结果数据向前台传送;则是本项目用于访问数据的API,用面向对象的思想来操作数据库,不但提高的程序的可读性,还提高了开发效-4-
率;本系统的技术核心,通过运spring的注入和AOP,是本系统的解耦进一步得到提高。本系统的技术架构图如图3-1:图3-1技构构图3.3.2能结构居民社区管理系统的详细功能结构图如图:-5-
图3-2详功能结构图3.4关技术介绍Tomcat简介服务器是一个免费的开放源代码的Web应用服务器前最新版本是。是软件基金会(ApacheSoftwareFoundation)的项目中的一个核心项目,由Apache、和其他一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和JSP规范总是能在Tomcat中得到体现,Tomcat支持最新的2.4和2.0规范。因为技术先进、性能稳定,而且免费,因而深受爱好者的喜爱并得到了部分软件开发商的认可为目前比较流行的应用服务器。很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。Tomcat是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调JSP程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好服务器,可利用它响应对页面的访问请求。实际上Tomcat部分是服务器的扩展但它是独立运行的所以当你运行时它实际上-6-
作为一个与Apache独立的进程单独运行的。当配置正确时,Apache为页面服务,而Tomcat实际上运行JSP页面和Servlet。另外,和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外它还是一个和容器,独立的容器是默认模式过处理静态HTML的能力不如服务器。简介java服务器页面是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准JSP技术有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集文件(*.htm,*.html)中插入Java序段(Scriptlet)和JSP标记(tag),从而形成JSP件缀名为*.jsp)。用JSP开的Web应用是跨平台的在Linux下运行,也能在其他操作系统上运行。JSP全名为ServerPages,其根本是一个简化的设计,他实现语法中的java张(以<%,%>形式)。JSP与Servlet一样是在服务器端执行的通常返回给客户端的就是一个文本因此客户端只要有浏览器就能浏览。JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。JSP(JavaServerPages)是一种动态页面技术它的主要目的是将表示逻辑从Servlet中分离出来。Servlet是JSP的技术基础,而且大型的Web用程序的开发需要JavaServlet和JSP配合才能完成JSP具备了Java技术的简单易用完全的面向对象具有平台无关性且安全可靠,主要面向因特网的所有特点。简介Jquery是继之后又一个优秀的Javascript。它是轻量级的库,它兼容CSS3,还兼容各种浏览器(IE6.0+,FF1.5+,Safari2.0+,Opera9.0+,jQuery2.0及后续版本将不再支持IE6/7/8浏览器使用户能更方便地处理HTML(标准通用标记语言下的一个应用)实现动画效果,并且方便地为网站提供AJAX交互。jQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。能够使用户的页面保持代码和html内容分离,也就是说,不用再在html面插入一堆js来调用命令了,只需要定义id即可。是一个兼容多浏览器的javascript库,核心理念是writeless,domore(写得更少,做得更多)。jQuery1由美国人Resig纽约的barcamp发布引了来自世界各地的众多高手加入DaveMethvin率领团队进行开发如今jQuery已经成为最流行的库[2]在世界前10000-7-
个访问最多的网站中,有超过55%在使用jQuery是免费、开源的,使用MIT许可协议。jQuery的语法设计可以使开发者更加便捷,例如操作文档对象、选择DOM元素制作动画效果事件处理使用Ajax以及其他功能除此以外jQuery提供API让开发者编写插件其模块化的使用方式使开发者可以很轻松的开发出功能强大的静态或动态网页。JQueryEasyUI简介jQueryEasyUI是一组基于UI件集合体,而jQueryEasyUI目标就是帮助web开发者更轻松的打造出功能丰富并且美观的界面。开发者不需要编写复杂的javascript也不需要对css样式有深入的了解开发者需要了解的只有一些简单的html标签。Struts2介Struts2是Struts的下一代产品,是在struts1和WebWork的技术基础上进行了合并的全新的Struts2框架。其全新的Struts2的体系结构与Struts1体系结构差别巨大。Struts以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以2可以理解为WebWork的更新产品。虽然从Struts1到Struts2有着太大的变化,但是相对于WebWork,Struts2的变化很小。java言的特Java是一门大家熟识的开发语言,它有很多优良的特点,以下简要列出其一些主要特性简单性Java语言是一种面向对象的语言它通过提供最基本的方法来完成指定的任务,只需理解一些基本的概念,就可以用它编写出适合于各种情况的应用程序。Java略去了运算符重载、多重继承等模糊的概念并且通过实现动垃圾收集大大简化了程序设计者的内存管理工作。另外Java也适合于在小型机上运行,它的基本解释器及类的支持只有40KB左右,加上标准类库和线程的支持也只有215KB左右。库和线程的支持也只有左右。(2)面向对象:Java语言的设计集中于对象及其接口,它提供了简单的类机制以及动态的接口模型。对象中封装了它的状态变量以及相应的方法实现了模块化和信息隐藏而类则提供了一类对象的原型并且通过继承机制子类可以使用父类所提供的方法,实现代码的复用。(3)安全性:用网络、分布环境下的Java必须要防止病毒的入侵不支持指针一切对内存的访问都必须通过对象的实例变量来实现,这样就防止程序员使用“特洛伊”木马等欺骗手段访问对象的私有成员,同时也避免了指针操作中容易产生的错误。移植性:与平台无关的特性使程序可以方便地被移植到网络上的不同机器。同时的类库中也实现了与不同平台的-8-
接口,使这些类库可以移植。另外,Java编译器是由Java语言实现的,Java运行时系统由标准C实现,这使得Java系统本身也具有可移植性。(5)多线程:多线程机制使应用程序能够并行执行,而且同步机制保证了对共享数据的正确操作。通过使用多线程,程序设计者可以分别用不同的线程完成特定的行为,而不需要采用全局的事件循环机制这样就很容易地实现网络上的实时交互行为(6)动态性Java的设计使它适合于一个不断发展的环境在类库中可以自由地加入新的方法和实例变量而不会影响用户程序的执行并且Java通过接口来支持多重继承使之比严格的类继承具有更灵活的方式和扩展性分布性是面向网络的语言通过它供的类库可以处理TCP/IP议,用户可以通过URL址在网络上方便地访问其它对象。简介是一个开源的全功能full-stack应用程序框架许可证形式发布。该框架基于One-on-One一书中的代码,最初由RodJohnson和Hoeller等开发。SpringFramework提供了一个简易的开发方式,这种开发方式,将避免那些可能致使底层代码变得繁杂混乱的大量的属性文件和帮助类Spring中包含的关键特性(1)强大的基于的采用控制翻转(InversionofIoC)原则的配置管理6]
使得应用程序的组建更加快捷简易(2)一个可用于从到JavaEE等不同运行环境的核心Bean工厂(3)数据库事务的一般化抽象层允许宣告式Declarative)事务管理器化事务的划分使之与底层无关。(4)内的针对JTA和单个数据源的一般化策略,使Spring的事务支持不要求环境这与一般的JTA或者CMT相反(5)JDBC抽象层提供了有针对性的异常等级(不再从SQL异常中提取原始代码,简化了错误处理,大大减少了程序员的编码量.再次利用无需再写出另一个终止(模块并且面向的异常与Spring通用数据访问对象(DataAccess异常等级相一致(6)以资源容器DAO实现和事务策略等形式与Hibernate和Maps集成。利用众多的翻转控制方便特性来全面支持解决了许多典型的集成问题.所有这些全部遵从Spring通用事务处理和通用数据访问对象异常等级规范。(7)活的基于核心功能的MVC网页应用程序框架开发者通过策略接口将拥有对该框架的高度控制,因而该框架将适应于多种呈现(View)术,例如JSP,,,,iText以及POI值得注意的是Spring中间层可以轻易地结合于任何基于MVC框架的网页层,例如Struts,WebWork或Tapestry。[5]Hibernate简介是一个开放源代码的对象关系映射框架对行了非常轻量级的对象封装使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是可以在应用J2EE-9-
架构中取代CMP,完成数据持久化的重任的核心接口一共有5,分别为:Session、SessionFactory、、Query和Configuration.这核心接口在任何开发中都会用到通过这些接口不仅可以对持久化对象进行存取还能够进行事务控制。下面对这五的核心接口分别加以介绍:(1)Session口:Session口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常见的语句但需要注意的是Session对象是非线程安全的。同时,的session不同于应用中的这里当使用这个术语时,其实指的是Hibernate中的,而以后会对象称为用户session。(2)SessionFactory接口:SessionFactroy接口负责初始化它充当数据存储源的代理负责创建Session对象。这里用到了工厂模式。需要注意的是并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory(3)Configuration口Configuration口负责配置并启动,创建对象。在的启动的过程中,类的实例首先定位映射文档位置、读取配置,然后创建SessionFactory。接口接口负责事务相关的操作。它是可选的,开发人员也可以设计编写自己的底层事务处理代码。(5)Query和接口:和Criteria接口负责执行各种数据库查询。它可以使用HQL语言或句两种表达方式。[4]MySQL介MySQL是一个开放源码的小型关联式数据库管理系统者为瑞典MySQLAB司。MySQL被广泛地应用在Internet上的中小型网站中由于其体积小速度快总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。MyEclipse简介MyEclipse企业级工作平台(MyEclipseEnterprise,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的成开发环境,包括了完备的编码试试和发布功能整支持HTMLStrutsJavascript,Spring,SQL,Hibernate。MyEclipse是一个十分优秀的用于开发Java,J2EE的Eclipse插件集合,MyEclipse的功能非常强大支持也十分广泛尤其是对各种开源产品的支持十分不错。MyEclipse目前支持JavaServlet,AJAX,JSP,JSF,Struts,Spring,Hibernate-10-
EJB3JDBC据库链接工具等多项功能可以说MyEclipse是几乎囊括了目前所有主流开源产品的专属eclipse开发工具。[4据设计4.1据表数据库是本系统的基础,其重要性不可估量,它将支撑整个系统。本系统的数据表不多,是经过本人的多次考虑才定下来的,因为数据库出问题的修改代价是非常大的,如果没有设计合理,到项目中后期有可能导致不可预估的风险,所以一般数据库定下来基本上是不会再去改动它,除非是非常有必要或者是不改不行的情况下才会去改动它,结果证明正是如此。针对本系统的功能,系统的数据库中一共包含了个表,系统数据库表信息如下表3-1:
表4-1系统数据库表及其详细能表名t_usert_house_properytt_communication_record
表名(中文名)用户表房产信息表出生死亡信息表居民信息表通信录表物品维修记录表
用途存储用户数据存储房产信息记录出生死亡信息登记人口信息存储通信录信息登记维修数据
备注包括用户和管理员4.1.1户信息表用户信息表如表4-2:
表4-2用户信息表字段名
字段类型
默认值
备注is_adminreg_timeuser_name
用户ID主是否管理员否注册时间用户代码,账号用户名称用户登录密码-11-
4.1.2品维修信表物品维修信息表如表4-3:
表4-3物品维修信息表字段名
字段类型
默认值
备注reg_idcontactcontact_phonerecord_statusreg_timereg_user_id
ID主地址联系人联系电话记录状态登记时间维修信息描述登记用户外4.1.3民信息表居民信息表如表4-4:
表4-4居民信息表字段名
字段类型
默认值
备注body_infofamily_countidentity_cityidentity_noidentity_provinceres_nationres_typesettle_address
Id主健康信息家庭成员数量家庭成员信息身份证地址身份证城市身份证县区身份证号码身份证省份出生日期名字民族性别居民类别居住地址居住状态医社保号码4.1.4产信息表房产信息表如表4-5:
表4-5房产信息表字段名house_id
字段类型
默认值
备注ID主房产地址-12-
house_areahouse_property_nohouse_owner_id4.1.5生死亡信表出生死亡信息表如表4-6:
表4-6出生死亡信息表
房产面积购建日期房产证号码所有者外字段名
字段类型
默认值
备注bd_info_iddeath_dateguardian_id
Id主出生日期出生性别死亡日期死亡原因死亡日期登记类别死亡人的抚养人id外死亡人外出生人的监护人id外4.1.6信录信息通信录信息表如表4-7:
表4-7通信录信息表字段名
字段类型
默认值
备注record_idemail_addresshobbyphone_nowe_chat
用户ID主电子邮箱爱好手机QQ号码特长电话号码微信号居民ID外4.2统E-R图以下的系统E-R图体现了本系统中所有表的关系,系统E-R图如图3-1所示:-13-
图4-8系E-R模型图5块计5.1共模块功能5.1.1户登录【功能描述】进步本系统进行相应的操作前,需要先登录,通用登录的用户名和密码验证后才能进步系统首页。用户登录的时候会经过客户端验证和服务端验证,客户端验证是对用户输入的数据进行初步的判断,主要是非空判断,如果用户没有输入任何内容直接点击登录,则弹出非空提示。服务器端验证是对用户输入的用户名和密码和数据库中注册的用户名和密码进行校验,如果不正确则作出相应提示。【页面体现】居民社区管理系统登录页面体现如下图:-14-
图5-1居社区管理系统登录页面【实现方法】本功能点是对用户表的数据进行查询并进行正确性校验。具体的form单如下:<formid="userLoginForm"><divstyle="margin-bottom:10px"><inputclass="easyui-textbox"name="userCode"style="width:100%;height:40px;padding:12px"data-options="prompt:'登录账号',iconCls:'icon-man',iconWidth:38"></div><divstyle="margin-bottom:10px"><inputclass="easyui-textbox"type="password"style="width:100%;height:40px;padding:12px"name="userPwd"id="userPwd"data-options="prompt:'登录密码',iconCls:'icon-lock',iconWidth:38"></div><divstyle="margin-bottom:10px"><selectclass="easyui-combobox"name="userType"id="userType"panelHeight="auto"style="width:100%;height:40px;padding:12px"data-options="prompt:'用户类别'"><optionvalue="1">管理员</option><optionvalue="0">一般用户</option></select></div></form>-15-
Form表单提交到aciton进行处理:publicStringlogin()throwsException{Coco=newCo();co.setRetCode("1");StringuserCode=Util.getRP("userCode");if("".equals(userCode)){co.setRetFailInfo("账号不能为空");Util.writeJSON(co);returnnull;}StringuserPwd=Util.getRP("userPwd");if("".equals(userPwd)){co.setRetFailInfo("密码不能为空");Util.writeJSON(co);returnnull;}StringuserType=Util.getRP("userType");if("".equals(userType)){co.setRetFailInfo("用户类型不能为空");Util.writeJSON(co);returnnull;}Useruser=publicDAO.getUserByUserCode(userCode);if(user==null){co.setRetFailInfo("账号不存在");Util.writeJSON(co);returnnull;}else{if(!userPwd.equals(user.getUserPwd())){co.setRetFailInfo("密码错误");Util.writeJSON(co);returnnull;}if(!userType.equals(user.getIsAdmin())){co.setRetFailInfo("账号不存在");Util.writeJSON(co);returnnull;}else{/*创建session*/HttpSessionsession=ServletActionContext.getRequest().getSession();session.setAttribute("LOGINUSER",user);co.setRetSuccInfo("登录成功");co.setRetCode("0");Util.writeJSON(co);-16-
returnnull;}}}通过以上的action调用DAO法进行用户数据的获取并判断,然后返回给前端用户。5.1.2户退出【功能描述】当用户处理完所有操作,要退出本系统的时候(如果不手动退出,超过session所设定的时间也会自动退出)可以进行退出操作,退出操作实际上是对登录时所保存的数据进行注销。【页面体现】退出系统页面体现如下图:图5-2退登录【实现方法】一下是注销的具体实现:publicStringlogout(){ActionContext.getContext().getSession().put("LOGINUSER",null);returnnull;}-17-
5.1.3改密码【功能描述】管理员进行新增用户的时候回默认设定一个用户密码,为了系统的安全性,用户可以随时进行自身账号的密码修改,修改后马上生效,下次登录需要输入新密码才能顺利登录到本系统中。【页面体现】修改密码页面体现如下图:图5-3修密码【实现方法】修改密码是对用户信息表中的密码字段数据进行修改,具体的实现如下:publicStringchangepwd(){Coco=newCo();StringoldPwd=Util.getRP("oldPwd");StringnewPwd=Util.getRP("newPwd");HttpSessionsession=ServletActionContext.getRequest().getSession();Useru=(User)session.getAttribute("LOGINUSER");if(!oldPwd.equals(u.getUserPwd())){co.setRetCode("1");co.setRetFailInfo("原密码不正确");Util.writeJSON(co);}else{/*修改密码*/u.setUserPwd(newPwd);publicDAO.updateUser(u);co.setRetCode("0");co.setRetSuccInfo("修改密码成功");-18-
}null;}修改后通过json返回到前台,告诉调用方修改码成功。5.2户管理5.2.1户信息管【功能描述】管理员具有用户管理的权限,可以对登录本系统的用户数据进行新增、查询、修改和删除操作。新增用户会对用户代码的唯一性进行校验,如果输入的用户代码即是用户的登录账户已经在本系统中已经被维护,就弹出相应提示。修改用户的时候不能修改用户代码,所以弹出修改用户窗口的用户代码是不可编辑的。【页面体现】用户信息维护页面体现如下图:图5-4用信息管理【实现方法】用户信息维护页面的数据对应着用户信息表,是对用户信息表进行操作。根据用户代码、用户名称、和用户的注册时间段来查询用户表,具体的实行方法如下:{Useruser=-19-
systemDAO.getUserList(user,"","");userListJsonStr=Util.getObjectJSON(userList);}u,regTimeBeg,StringregTimeEnd){"fromuu.isAdmin'0'";if(!Util.isBlank(u.getUserCode())){"like'%"++"%'";}if{"like'%"+}if(!Util.isBlank(regTimeBeg)){"'""00:00:00'";}if(!Util.isBlank(regTimeEnd)){"'""23:59:59'";}hibernateTemplate.find(hql);userList;}5.2.2理员信息理【功能描述】管理员不但具有用户管理的权限,并且可以管理管理员本身的数据,可以对管理员数据进行新增、查询、修改和删除操作。和新增普通用户一样新增管理员会对用户代码的唯一性进行校验如果输入的用户代码即是用户的登录账户已经在本系统中已经被维护,就弹出相应提示。修改管理员的时候不能修改用户代码,所以弹出修改用户窗口的用户代码是不可编辑的,管理员的数据和普通用户的数据是放在同一张数据表中,通过is_admin字段来标识用户是普通用户还是管理员。【页面体现】管理员信息维护页面体现如下图-20-
图5-1管员信息管理【实现方法】同样也是对用户信息表的数据进行操作,只是针对不同用户类型,管理员用户具有比普通用户更加高级的权限因为管理员信息维护页面和普通用户信息维护页面的查询逻辑是一致的,实现方法也是一致的,只是查询条件有所不同,普通用户而管理员用户is_admin=1
is_amdin=05.3务管理5.3.1口信息登【功能描述】人口信息登记是对居住在本社区中的人口信息进行录入。用户可以根据居民的姓名、性别、民族、状态、居民类别等信息对已经维护再本系统中的居民信息进行查询。人口登记信息是本系统其它业务功能的基础系统中有涉及到用户的地方都会关联到本功能所维护的用户数据。所登记的信息记录着居民的详细信息。【页面体现】人口信息登记页面体现如下图:-21-
图5-6人信息登记【实现方法】人口信息登记是对居民信息表的数据进行操作。一下是本页面数据的具体实现:resPage(){List<com.model.Resident>resList=resListJsonStr=resListJsonStr);}List<Resident>{"fromResidentwhereif!=null){if(!Util.isBlank(u.getResName())){"u.resName'%"+u.getResName()+"%'";}if(!Util.isBlank(u.getResSex())){"='"u.getResSex()+"'";}if(!Util.isBlank(u.getResNation())){"u.resNation'%"+u.getResNation()+"%'";}if{"u.settleStatus='"++"'";}if(!Util.isBlank(u.getResType())){"='""'";}}-22-
List<Resident>hibernateTemplate.find(hql);resList;}5.3.1生死亡登【功能描述】对于父母是本社区居民的用户其家庭子女可以出生是可以在本居民社区管理系统中登记出生信息。对于原来就是本社区的居民,死亡后其相关亲属需要提供相关的死亡信息登记又管理员登记在本系统中。出生登记和死亡登记是整合在一起的,当用户选择登记的是出生信息是,死亡信息是不会记录在本系统中,即使有输入内容也不会记录下来的,同样如果用户选择的是死亡登记,也不会存储所输入的出生信息。出生和死亡属于两个互斥的功能点。【页面体现】出生死亡登记页面体现如下图:图5-7出死亡登记【实现方法】出生死亡登记的信息是维护再出生死亡表中户可以根据对象的登记类型别、出生日期或者死亡日期对出生死亡信息表的数据进行查询。具体实现如下:{List<com.model.BdInfo>bdInfoListUtil.writeJSON(bdInfoList);-23-
null;}addBdInfo(){Co();bdInfo.setRegDate(Util.date2str(6,null));if("出生"{bdInfo.setDeathDate(null);bdInfo.setDeathReason(null);ResidentrresidentDAO.getResByIdentityNo(bdInfo.getGuardian().getIdentityNo());if(rnull){出生人监护人身份证号身份证无效");null;}}{bdInfo.setBirthSex(null);ResidentrresidentDAO.getResByIdentityNo(bdInfo.getDeathResident().getIdentityNo());if(rnull){死亡人身份证证无效");null;}Residentr2=residentDAO.getResByIdentityNo(bdInfo.getDeathRaise().getIdentityNo());if(r2=={死亡人的抚养人身份证号无效");null;}}bdInfoDAO.addBdInfo(bdInfo);-24-
co.setRetSuccInfo("新增成功");null;}{Co();delBdInfoIds=ServletActionContext.getRequest().getParameter("delBdInfoIds");/*暂时不对用户进行检查,即所有用户都可以被删除*/=Util.str2InString(delBdInfoIds);try{bdInfoDAO.delBdInfoByids(inString);}catch{数据已被维护,不能删除");null;}co.setRetSuccInfo("删除成功");null;}updateBdInfo(){Co();com.model.BdInfooldbdInfo=bdInfoDAO.getBdInfoById(bdInfo.getBdInfoId());bdInfo.setRegDate(oldbdInfo.getRegDate());if("出生"{bdInfo.setDeathDate(null);bdInfo.setDeathReason(null);ResidentrresidentDAO.getResByIdentityNo(bdInfo.getGuardian().getIdentityNo());if(rnull){出生人监护人身份证号身份证无效");null;}}{-25-
bdInfo.setBirthSex(null);ResidentrresidentDAO.getResByIdentityNo(bdInfo.getDeathResident().getIdentityNo());if(rnull){死亡人身份证证无效");null;}Residentr2=residentDAO.getResByIdentityNo(bdInfo.getDeathRaise().getIdentityNo());if(r2=={死亡人的抚养人身份证号无效");null;}}bdInfoDAO.updateBdInfo(bdInfo);co.setRetSuccInfo("修改成功");null;}5.3.1产信息登【功能描述】房产信息登记是对属于本社区居民所有的房产信息数据进行登记这里登记的信息包括房子本身的信息和房子所有人的信息房子所有人的信息只要填写所有人的身份证号码,这里的房产素有人必须是已经维护再本系统中的居民,否则改房产信息不能被维护,会弹出相应提示。用户可以根据房产地址、房产证号对房产信息进行查询等操作。【页面体现】房产信息登记页面体现如下图:-26-
图5-8房信息登记【实现方法】房产信息数据是对应着数据库的房产信息表,对其进行增加、删除、修改和查询操作,具体的实现方法如下:searchHouse(){houseList=houseDAO.getHouseList(house);null;}{Co();ResidentrresidentDAO.getResByIdentityNo(house.getHouseOwner().getIdentityNo());if(rnull){房产拥有人身份证无效");null;}houseDAO.addHouse(house);co.setRetSuccInfo("新增成功");null;}delHouse(){Co();-27-
delHouseIds="delHouseIds");/*暂时不对用户进行检查,即所有用户都可以被删除*/=Util.str2InString(delHouseIds);try{houseDAO.delHouseByids(inString);}catch{数据已被维护,不能删除");null;}co.setRetSuccInfo("删除成功");null;}{Co();ResidentrresidentDAO.getResByIdentityNo(house.getHouseOwner().getIdentityNo());if(rnull){房产拥有人身份证无效");null;}co.setRetSuccInfo("修改成功");null;}5.3.1民通信录【功能描述】居民通信录是为了社区中的居民可以相互联系交流以及可以方便社区管理人员可以及时快速联系到社区中的相关人员而开发的,通信录里记录着居民的多种联系方法,居民间可以通过多种渠道来联系社区内的人员,极大的丰富了居民间的交流方式,促进-28-
了社区的和谐发展。【页面体现】居民通信录页面体现如下图:图5-9居通信录【实现方法】根据居民的名称爱好等信息对居民通信录中的数据进行查询实际上对通信录信息表的数据进行操作。以上功能的具体实现如下:{commList=Util.writeJSON(commList);null;}addComm(){Co();ResidentrresidentDAO.getResByIdentityNo(comm.getResident().getIdentityNo());if(rnull){身份证无效"null;}comm.setResident(r);commDAO.addComm(comm);co.setRetSuccInfo("新增成功");-29-
null;}delComm(){Co();="delRepairIds");/*暂时不对用户进行检查,即所有用户都可以被删除*/=Util.str2InString(delRepairIds);try{}catch{数据已被维护,不能删除");null;}co.setRetSuccInfo("删除成功");null;}updateComm(){Co();ResidentrresidentDAO.getResByIdentityNo(comm.getResident().getIdentityNo());if(rnull){身份证无效"null;}comm.setResident(r);commDAO.updateComm(comm);co.setRetSuccInfo("修改成功");null;}5.3.1品维修登【功能描述】-30-
物品维修登记功能是一项便民服务居民可以通过该功能在页面上登记上相关的物品维修数据,就可以透过这个平台方便的得到物品维修的上门服务,当居民开始登记物品维修数据的时候该数据处于维护未处理状态当上门维修服务结束后管理员可以把改维修数据修
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 幼儿园光伏发电项目施工合同
- 家具租赁合同协议书
- 体育赛事合同管理细则
- 临时医疗服务中心租赁合同
- 仓储物流中心扩展用地租赁协议
- 临时驾驶员招聘合同模板
- 大型活动道具改造吊车租赁协议
- 国际化学校房产交易合同模板
- 学校宿舍空调系统安装合同
- 河南省工业园区建设项目合同模板
- 《剪映专业版:短视频创作案例教程(全彩慕课版)》 课件 第6章 创作生活Vlog
- 重大事故隐患判定标准与相关事故案例培训课件
- 火龙罐综合灸疗法
- 深圳市中小学生流感疫苗接种知情同意书
- 数据、模型与决策(运筹学)课后习题和案例答案007
- 超高层建筑电气设计要点分析
- 精神堡垒报价单
- 德国支持中小企业科技创新的政策资料
- 全公安机关易制爆危险化学品安全监管要点暨检查记录表
- 644523009毕业设计(论文)小型反应釜控制系统的仿真设计
- 县教育局道路交通安全情况汇报
评论
0/150
提交评论