小区人口信息管理系统的设计与实现(本科毕业设计) 下载本文

目 录

摘 要 ................................................................. I Abstract ............................................................... II 第1章 前 言 ........................................................ 1

1.1 课题背景 ..................................................... 1 1.2 研究的目的及意义 ............................................. 1 1.3 项目描述 ..................................................... 1 第2章 技术与原理 .................................................... 2

2.1 数据库存储技术 ............................................... 2 2.2 面向对象的分析与设计 ......................................... 2 2.3 Ajax异步请求技术 ............................................. 2 2.4 AOP面向方面编程 .............................................. 2 第3章 需求建模 ...................................................... 3

3.1 现状调查 ..................................................... 3 3.2 需求分析 ..................................................... 3 3.3 需求建模 ..................................................... 3 3.4 可行性分析 ................................................... 6 第4章 架构设计 ...................................................... 7

4.1 系统核心功能架构 ............................................. 7 4.2 MVC编程架构 .................................................. 8 4.3 SSH系统框架 .................................................. 8 4.4 数据结构设计 ................................................. 9 第5章 模块设计 ..................................................... 17

5.1 登录系统的设计与实现 ........................................ 17 5.2 系统访问安全性设计与实现 .................................... 17 5.3 业主信息管理设计与实现 ...................................... 20 5.4 社区救助信息管理设计与实现 .................................. 21 5.5 小区流动人口信息管理设计与实现 .............................. 21 5.6 物业管理员信息管理设计与实现 ................................ 21 5.7 个人信息详情设计与实现 ...................................... 22 第6章 部署与应用 ................................................... 24

6.1 系统模式 .................................................... 24

6.2 系统环境 .................................................... 24 第7章 结论 .......................................................... 25 附录 .................................................................. 27

小区人口信息管理系统的设计与实现

摘 要

随着人口的迅速增长、居住形式的小区化、人口的不断流动、迁入、迁出给小区人口的管理带来极大不便,迫切的需要一种更加高效的管理方式代替传统的手工管理模式。利用计算机技术进行人口的管理与信息的统计,就能提供给人们一种更加高效的管理方式。

小区人口管理系统利用计算机技术,结合数据库系统,搭建一个网络管理平台,对人口流动以及迁入迁出进行统计与计算、存储居民基本信息,服务于人口普查、记录弱势群体的生活状况,给予爱心援助、为物业提供更加高效的小区人口管理模式。系统能够智能化分析,提供人口变动的相关报表依据,掌握人口动态,有利于更加清晰便捷的掌握人口的发展规律,给今后的人口发展策略的调整提供有利的依据。

关键词:人口流动;数据库系统;效率;统计报表;计算机技术

I

The Design and Implement of Community Population

Information Management System

Abstract

With the rapid growth of the population, live in the form of a community, the constant flow of population, immigration and emigration to the management district's population has caused great inconvenience, the urgent need for an alternative to the traditional manual management mode more efficient management . Use of computer technology for population management and statistical information to be able to provide people a more efficient management.

Community population management system using computer technology, combined with a database system, to build a network management platform, and moved to vacate on migration statistics and computing, storage residents basic information services in the census, the living conditions of vulnerable groups recorded, giving love and assistance, provide more efficient management model for population management community property. Intelligence analysis system can provide the relevant statements of changes in population control population dynamics, conducive to the development of a clearer grasp of the law and convenient population, to adjust future population development strategy to provide a favorable basis.

Key words: Population movements;Database system;Efficiency;Statistical reports;Computer technology

II

第1章 前 言

1.1 课题背景

随着人口的快速增长、以及外出务工人员的增多,使得对流动人口的信息管理变得困难,流动人口信息更新不及时。另一方面,传统的人工管理的方式,在大数据量、信息更新频繁的情况下,凸显出其效率以及保密性低下等问题。除此之外,人工管理的方式,很容易出错,甚至可能是资源文件的遗失。并且,随着时间的推移,堆积的资料会越来越多,保存难是一方面,更重要的是管理的难度成倍增长、效率低、更容易出错;传统的纸质文档管理,给查找、更新、以及资料的维护带来更多的困难。所以,需要引入一种更加高效便捷的方式去处理这些问题。

利用计算机的现代化处理方式,通过数据库系统对数据进行存储,程序对业务逻辑进行计算及处理,可以更好的弥补传统的人工管理方式的不足,使得数据的保存以及维护更加便捷高效。

1.2 研究的目的及意义

实现小区人口信息的计算机管理,能更好的提高工作效率,避免人为的失误造成不必要的后果,也使得数据的保存更加安全便捷。通过计算机处理,对人口信息进行统计和分析,可以对今后的人口发展趋势、人口分布进行相关科学预测等。

1.3 项目描述

系统基于J2EE技术,利用SSH(struts2、spring、hibernate)进行框架搭建的Web项目。系统通过配置Filter对访问链接进行安全过滤;另外对登录安全进行相关管理,不允许单个用户在多个地方进行登录操作,保证数据的一致性等。本系统核心模块:小区业主管理、物业工作人员管理、社区救助对象的管理、系统后台管理。其中,系统后台管理包括对系统常量的相关维护。

1

第2章 技术与原理

2.1 数据库存储技术

数据库系统承载着系统数据的存储、更新、查询等重要功能,是人口信息管理系统的核心组成部分。本系统采取Mysql数据库,对于小型的B/S系统简单实用、功能完善,是一个比较成熟的数据库系统。

2.2 面向对象的分析与设计

OOAD(Object Orient Analysis & Design,面向对象的分析与设计)是现代软件企业广为采用的一项有效技术,OOAD方法要求在设计中映射现实世界中指定问题域的对象和实体。面向对象技术能够构建与现实世界对应的问题模型,并保持他们的结构、关系和行为模式。面向对象编程,能够简化编程思想,更加适应需求变化。

2.3 Ajax异步请求技术

AJAX即“Asynchronous JavaScript and XML”(异步的JavaScript与XML技术),指的是一套综合了多项技术的浏览器端网页开发技术。

传统的表单验证,是当提交一个表单的时候就向Web服务求提交一个请求,然后Web服务器响应并返回一个处理页面。这种方式不仅浪费带宽,而且没有很好的用户体验。用ajax技术,进行异步请求,实现页面无刷新效果,对表单数据异步校验,给用户更佳体验。

2.4 AOP面向方面编程

面向方面的程序设计(aspect-oriented programming,AOP)通过预编译方式和运行期动态代理实现程序功能的统一维护,是函数式编程的一种衍生范型。

系统利用AOP编程,将公共部分抽象出来(如操作日志记录、性能统计、安全控制、事务处理、异常处理等),利用AOP动态组建技术集成到系统中,更加专注于核心业务的开发,避免大量重复代码,使得系统更加干净高效。

2

第3章 需求建模

3.1 现状调查

随着信息时代的发展,对效率的要求日益提高。人口不断的流动、迁入、迁出,不仅给管理带来了不便,而且不能及时的查询、登记所需的信息,使各种数据得不到充分的利用。因此,必须加强管理,积极采用先进的科学技术和管理方法来提高人口信息管理的工作效率。

3.2 需求分析

本系统核心模块:小区业主管理、物业工作人员管理、社区救助对象的管理、流动人口及常住人口的管理、系统后台管理。其中,系统后台管理包括对系统常量的相关维护。

人口信息的网络化管理,对提高人口管理的办事效率、加大信息资源的共享、规范行政办事手续、提供准确的统计分析具有划时代的意义。针对人口信息管理涉及的信息查询、录入、分析等进行管理;以人口信息管理业务为背景,通过调研、分析现有的管理模式和已有的管理软件,建立系统模型。本系统的诞生是为人口管理工作提供方便、便捷的信息管理方式,较好的满足各物业对小区人口管理的实际需求。

系统需要满足一定的信息统计和分析的功能,为今后小区物业的发展提供一定的数据支持;系统设计能够实现对小区人口信息的录入、编辑、查询和删除等功能,针对人口信息管理涉及的信息录入、查询分析等进行有效的管理;系统界面友好、简介、便于客户操作,给予客户一流的体验,能真正提高人口管理的工作效率。

3.3 需求建模

3

信息导出系统信息维护超级管理员居民通讯录管理登录系统小区业主信息管理弱势群体救助管理退出登录流动人口管理普通管理员业主车辆管理物业工作人员管理

图3-1 系统基本用例图

账号密码以及验证码输入验证判断是否为空存在空值重新进行登录,并给出提示验证当前账号是否已经登录已经在线进入系统

图3-2 系统登录活动图

4

actions通知,记录操作日志、登录信息以及错误信息等session动作监听,销毁保存用户信息的session对象advices页面值对象listenersvo提供服务系统安全访问过滤器filterservices提供安全登录方法,存储登录信息数据库访问方法daosecurityutils数据库持久化对象po图3-3 系统核心包图

SecurityUserHolder+getCurrentUser(): ManagerInfoVO+securityLogin(ManagerInfoVO): String+isOtherUserLogin(String): boolean+loginOut(): boolean+constraintOffline(): boolean+constraintOffline(String): boolean+repeatLogin(String): boolean+loginEffective(): boolean+loginEffective(String): boolean-currentUserHasLogin(): boolean-userHasLogin(String): boolean-currentSessionIdEffective(): boolean-currentUserName(): String

图3-4 系统用户登录安全类图

PaginationUtils-DEFAULT_PAGESIZE: static final Integer-currentPageNumber: static Integer-total: static Integer-request: static HttpServletRequest-hibernateTemplate: static HibernateTemplate+PaginationUtils()+initPaginationUtilsRequest(HttpServletRequest)+countStatistic(String, Object[]): Integer+exeutePagingQuery(): List+exeutePagingQuery(String, Object[]): boolean+setPageNumber(Integer)+getPageNumber(): Integer+setTotal(Integer)+getTotal(): String+setHibernateTemplate(HibernateTemplate)+getHibernateTemplate(): HibernateTemplate

图3-5 基于hibernate的分页工具类图

5

3.4 可行性分析

通过各个方面的深入了解和分析后,现对此人口信息管理系统进行可行性分析。

3.4.1 技术可行性

使用Mysql数据库存储管理数据,操作方便,适用于小型的应用管理系统; 掌握eclipse工具的使用,会使用快捷键以提高开发速度、以及JavaEE的开发流程;

SSH(struts2、spring3.x、hibernate3.x)框架的整合使用,提高应用程序的可扩展性,更好的对系统进行升级改造;加强系统的安全性能;

Java的基本api的使用;Java Servlet、Filter等技术的应用,提高系统的开发速度,利用最合适的方法完成开发任务;

数据输入验证:据输入时通过Javascript进行本地输入验证(Ajax异步校验),提高用户体验的同时,合理的利用网络带宽,避免表单的无效提交(如用户注册功能的用户名重复判断,通过ajax技术,只需要异步提交用户名,并获取反馈的判断信息即可);

数据交换格式:Json格式,易于阅读和编写,同时也易于机器解析和生成,网络上存在很多UI框架,可直接解析json,构造数据表格,用户界面更加美观,同时也提高了开发速度,确保系统能够顺利进行下去;

系统的MVC三层架构,代码逻辑与业务分离,更方便日后的维护和扩展,在对业务逻辑进行修正或更改的时候不需要设计到表现层的代码和数据库逻辑代码;

系统权限控制、日志记录等功能作为一个切面进行编程,利用AOP技术动态的组建到services层代码中,这样更能专注于sevices层的代码开发。业务逻辑更加清晰;

使用接口开发等Java开发规范等,规范开发是为了日后更加方便维护,同时,也能够提高代码的可读性,提高开发效率以及代码的质量;

以上涉及的技术不是很难,技术上完全可以实现。 3.4.2 经济可行性

Mysql数据库可免费使用,能够满足基本的需求;eclipse做为开源的IDE工具;系统的使用很简单,只需要简单的培训即可;

综上所述,此人口信息管理系统的开发在技术、经济上是可行的。

6

第4章 架构设计

4.1 系统核心功能架构

图4-1 系统核心功能架构图

系统核心是对常住的业主进行管理、流动人口管理以及对弱势群体的爱心援助管理。因为对弱势群体的救助是一个很重要的方面,也是国家很重视的一块,一个高效的管理方式,能够更好的落实对弱势群体的救助工作。流动人口管理也是很重要的一个环节,流动人口的急剧增长,使得管理起来更加麻烦。所以,需要更加高效的管理方式来应对当前常住人口管理以及流动人口管理不便的现状,更好的服务于社会。

7

4.2 MVC编程架构

图4-2 MVC编程架构图

MVC(Model View Controller),是指模型(model)- 视图(view)- 控制器(controller)。是一种软件设计典范,用一种业务逻辑和数据显示分离的方法组织代码,将业务逻辑集聚到一个部件里,在界面和用户围绕数据的交互能被改进和个性化定制的同时而不需要重新编写业务逻辑,MVC被独特的发展起来用于映射传统的输入、处理以及输出功能在同一个逻辑的图形化用户界面的结构中。

4.3 SSH系统框架

基于J2EE技术,利用SSH(struts2、spring3.x、hibernate3.x)框架搭建的Web项目。考虑到系统的可维护性,前期对系统整体框架进行优化以及对代码的重构,抽象出公共的部分作为公共服务,提高代码的质量,使整体架构更加清晰。

利用Struts2作为MVC中的Controller层,分离表现与业务逻辑;利用Spring基于JavaBeans的采用控制反转(Inversion of Control,IoC)原则的配置管理,使得应用程序的组建更加快捷简单,程序设计更加灵活,能更好的适应需求的变化。其架构如下图所示:

8

图4-3 Spring功能架构图

利用Hibernate,采用面向对象的方式,操作数据库。简化查询语句,更能适用多种数据库,能够跨数据库平台,加强了系统的可移植性。

4.4 数据结构设计

4.4.1 系统数据库部分E-R图

9

姓名 收入 户口 类别 户口编号号 居住 身份证号 居民 N M 1 家庭 联系方式 M 手机 居民通讯录 QQ 身份证号 电子邮箱 图4-3 常住居民基本信息E-R模型

4.4.2 系统数据库表及关系

数据库包括小区物业管理人员信息表(manager_info)、居民基本信息表(resident_base_info)、居民家庭信息表(resident_family_info)、居民扩展信息表(resident_extension_info)、居民通讯录(resident_contact)、常量信息表(constant_info)、社区救助两劳人员信息表(CA_two_labor_officers_info)、社区救助优抚对象信息表(CA_preferential_treatment_info)、社区救助低保人员信息表(CA_subAllowance_info)、社区救助失业人员信息表(CA_unemployed_info)、社区救助残疾人信息表(CA_disability_info)、社区救助老年人信息表(CA_old_people_info)、系统页面信息表(system_page_info)。

10

图4-5 表之间的引用关系

11

4.4.3 主要数据表结构

表4-1 居民基本信息表(resident_base_info)

名称 居民基本信息Id 低保人员信息Id 居民扩展信息Id 两劳人员信息Id 残疾人信息Id 优抚对象信息Id 失业人员信息Id 老年人信息Id 居民通讯录Id

楼号 户(门)号 户口类别(此处为常量引用)

姓名 曾用名 户主姓名(可查

询选择) 与户主关系(作为常量引用) 身份证号 出生日期(自动通过身份证号计

算) 签发机关 签发日期 户籍状态(作为

代码 resident_base_info_id sub_allowance_info_id resident_extension_info

_id

two_labor_officers_info

_id

disability_info_id preferential_treatment_

id

unemployed_info_id old_people_info_id resident_contact_info_i

d

building_number site_number

residence_registration_

code name original_name householder_name householder_relation_co

de

identity_card_number

birth_date issuing_authority

sign_date

residence_status_code

数据类型 int int int int int int int int int int varchar(12) varchar(12)

int varchar(12) varchar(12) varchar(12)

int varchar(20) char(10) varchar(50) char(10) int

长度 主要的 12 12 12 12 12 20 10 50 10

TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE

居民家庭信息Id resident_family_info_id

12

常量引用) 登记日期 文化程度(可作为常量引用) 出生地(现不做自动化处理) 性别(作为常量

引用) 身高(m) 血型(作为常量

引用) 健康状况(作为常量引用) 户籍所在地

籍贯 民族(作为常量

引用) 住址 联系电话 其他住址 宗教信仰 婚姻状况(此处作为常量引用) 兵役情况(此处作为常量引用)

职业 政治面貌(此处作为常量引用)

备注 添加时间 添加人ID 修改时间 修改人ID 是否启用

register_date degree_of_education

birth_address sex_code height blood_type_code health_status_code residence_address native_place nation_code address contact_phone other_address religion_faith marital_status_code military_service_status

_code professional politics_status_code

remark add_time add_user_id modify_time modify_user_id is_enable

char(10) int varchar(50)

int char(4) int int varchar(50) varchar(50)

int varchar(50) varchar(12) varchar(50) varchar(20)

int int varchar(20)

int text datetime int datetime int bool

10 50 4 50 50 50 12 50 20 20

FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE

13

表4-2 社区救助低保人员信息表(CA_subAllowance_info)

名称 低保人员信息

Id 居民基本信息

Id 低保证号 低保原因(此处可以作为常量) 开始时间 结束时间 保障金额 备注 添加时间 添加人ID 修改时间 修改人ID 是否启用

代码 sub_allowance_info_id resident_base_info_id sub_allowance_number sub_allowance_cause_code sub_allowance_startDate sub_allowance_endDate sub_allowance_money sub_allowance_remark

add_time add_user_id modify_time modify_user_id is_enable

数据类型 int int varchar(20)

int char(10) char(10) float(8,2)

text datetime int datetime int bool

长度 主要的 20 10 10 8

TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE

表4.3 社区救助失业人员信息表(CA_unemployed_info)

名称 失业人员信息Id 居民基本信息Id 失业档案号 失业日期 原职业Code(此处作为常量引

用) 原工作单位 就业状况Code(此处作为常量引用) 求职意向Code(此处作为

代码 unemployed_info_id resident_base_info_id

unemployed_FN unemployed_date original_professional_co

de

original_work_unit employment_status_code

数据类型 int int varchar(20) char(10) int varchar(50)

int

长度 主要的 20 10 50

TRUE FALSE FALSE FALSE FALSE FALSE FALSE

job_intension_code int FALSE

14

常量引用) 要求月收入

备注 添加时间 添加人ID 修改时间 修改人ID 是否启用

required_monthly_income

remark add_time add_user_id modify_time modify_user_id is_enable

表 4-4 社区救助老年人信息表(CA_old_people_info)

float(8,2)

text datetime int datetime int bool

8

FALSE FALSE FALSE FALSE FALSE FALSE FALSE

名称 老年人信息Id 居民基本信息

Id 工作时间 退休时间 退休金(pension) 居住情况(此处作为常量引用) 退休单位(此处作为常量) 配偶情况(此处作为常量引用) 目前状况(此处作为常量引用,同上即可) 经济来源(此处作为常量引用) 特殊情况(此处作为常量引用)

备注 添加时间 添加人ID

代码 old_people_info_id resident_base_info_id

start_work_date retire_date pension reside_status_code retirement_unit_code partner_status_code

数据类型 int int char(10) char(10) float(8,2)

int int int

长度 主要的 10 10 8

TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE

current_status_code int FALSE

source_of_finance_code special_situation_code

remark add_time add_user_id

int int text datetime int

FALSE FALSE FALSE FALSE FALSE

15

修改时间 修改人ID 是否启用

modify_time modify_user_id is_enable

datetime int bool

FALSE FALSE FALSE

表4-5 社区救助残疾人信息表(CA_disability_info)

名称 残疾人信息Id 居民基本信息Id

残疾证号 残疾状况(作为常量引用) 监护人 劳动能力(作为常量引用) 技能特长 备注 添加时间 添加人ID 修改时间 修改人ID 是否启用

代码 disability_info_id resident_base_info_id disability_number disablitiy_status_code

guardian

labour_capacity_code

skill remark add_time add_user_id modify_time modify_user_id is_enable

数据类型 int int varchar(20)

int varchar(10)

int varchar(50)

text datetime int datetime int bool

长度 主要的 20 10 50

TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE

16

第5章 模块设计

系统模块概述:能够实现对小区业主信息的录入、维护、查询以及删除的功能;完成对物业工作人员信息的录入、维护、查询和删除功能;生成对小区业主资料和物业工作人员信息的报表;维护管理员的信息;可对系统的基本常量进行维护等。

5.1 登录系统的设计与实现

功能描述:对登录系统的用户进行验证,只有合法的用户才能登入系统,否则弹出对话框提示错误信息;此外,加入验证码验证,首先对验证码进行校验,正确则对数据库查询并验证用户是否合法;支持单用户安全登录操作,同一个会话是不能有两个用户同时存在的,也就是说,在浏览器多个窗口中不能登录多个用户,会强制下线上一个登录的用户,避免session的混乱带来的严重后果;用户强制下线实现,可选择强制下线当前登录的用户。

具体设计与实现:考虑到系统访问安全,在没有登录系统的情况下,会通过url重定向跳转到登录界面,并取得用户名输入框的焦点;在登录超时后,系统自动跳转到登录界面,重新进行登录;系统监听键盘回车事件,会对输入进行不为空验证,并对验证码、用户名和密码进行匹配。并给出相应的响应。

在不同的浏览器中登录同一个用户是不允许的,通过每个会话的sessionId的不同进行判断,每次登录后在上下文环境(ServletContext)保存登录用户名、当前登录用户的sessionId(key,value形式),存储登录用户的信息,并在session对象中,存储当前sessionId以及登录名;然后查询重复登录或非法操作时,通过sessionId取得对应的登录名,最后在ServletContet对象中判断通过用户名查询对应的sessionId是否能和当前的sessioId 进行匹配;如果重复登录,此系统采取提示强制前一个用户下线的确认选择策略,以达到模拟单点登录的效果。

验证码的获取:设计并实现验证码的模块,利用BufferedImage对象生成图片对象,通过Graphics2D画图,前台通过动态方法调用的方式取得验证码图片。

5.2 系统访问安全性设计与实现

功能描述:当用户被强制下线,也就是当前登录失效的情况下,用户操作需要阻止并跳转到登录界面。

利用filter(过滤器)对访问的请求进行过滤,如果当前非法操作(如已经下线等)则主动跳转到登录界面。代码如下:

public class SecurityVisitFilter implements Filter {

17

private HttpSession session; //context

private ServletContext context;

private static final String REDIRECT = \

('login.action','_top')\

/**

* 对请求进行过滤 */

public void doFilter(ServletRequest servletRequest, ServletResponse public void destroy() { }

servletResponse,

FilterChain chain) throws IOException, ServletException { //转换成真正的类型 HttpServletRequest

request = (HttpServletRequest) servletRequest;

HttpServletResponse

response = (HttpServletResponse) servletResponse;

//session初始化

this.session = request.getSession(); String uri = request.getRequestURI();

//排除不需要过滤的url(login.action/login.jsp/userLogin.action) if(CommUtils.ignoreMatch(uri, ConstantUtils.IGNORE_ACTIONS)){ }

//判断用户是否登录,否则访问是不合法的,跳转到login.action(登录页面) if(loginEffective()){

chain.doFilter(request, response); chain.doFilter(request, response); return;//此处必须要返回

}else{

PrintWriter out = response.getWriter();

18

}

}

out.println(REDIRECT); out.flush(); out.close(); return;

/**

* 判断当前方法是否有效 * @return */

public boolean loginEffective(){ }

return userHasLogin() && sessionIdEffective();

/**

* 判断用户是否已经登录 * @return */

private boolean userHasLogin(){

return

CommUtils.isNotNull(context.getAttribute(currentUserName()));

} /**

* 判断当前会话Id是否有效 * @return */

private boolean sessionIdEffective(){

return

CommUtils.null2String(context.getAttribute(currentUserName())).

}

equals(session.getId());

19

/**

* 获取当前会话的登录名 * @return */

private String currentUserName(){

String

currentUserName

=

CommUtils.null2String(session.getAttribute(session.getId())); }

}

public void init(FilterConfig config) throws ServletException { }

context = config.getServletContext(); return currentUserName;

5.3 业主信息管理设计与实现

功能描述:对业主基本信息、家庭、通讯方式的录入、维护、查询以及删除等操作。包括人口的姓名,性别,住址,户籍状况,身份证号,性别,出生日期,民族,文化程度,婚姻状况,政治面貌,生活保障情况以及联系方式等信息。

具体实现:

查询:可以通过业主的姓名或者房间地址对信息进行检索匹配,相比在海量文件中找打某一条信息,计算机的管理方式更加高效。

新增:显示业主基本信息的表单,对必填项进行标注并进行校验(通过jQuery.validate.js进行表单验证,减小开发工作量);地址选择采用js地址插件,利用二级联动的效果对应省市县进行选择,减少输入的工作量;户籍状况作为下拉列表进行选择,因为这种信息基本上不会变动,也可通过数据库常量进行维护;出生日期采用js日期插件,对日期输入进行格式化操作,避免错误的日期格式,也方便用户对系统操作。民族、文化程度、婚姻状况、政治面貌等都作为下拉列表进行选择。

1)删除:给出删除提示,并确认操作,需要对管理员权限进行验证,普通管理员不能对业主信息进行删除,只允许查看;删除完成自动对列表进行刷新,实时同步数据库信息。

2)维护:点击维护链接,页面跳转到业主信息维护表单,呈现可以进行维护的信息,不能进行修改的设置readonly属性,只允许查看;当然还需要对信息的有效性进行验证。

20

5.4 社区救助信息管理设计与实现

功能描述:对救助信息的录入、维护、查询、删除等操作,信息包括所在楼号、户号、姓名、性别、身份证号、保障金额、保障开始日期及结束日期、享受低保原因等。

具体实现:

1)查询:可以通过受救助人员的姓名或者住址以及身份证号对信息进行检索匹配,提供多条件的组合查询,自动化解析查询条件。

2)新增:显示救助人员基本信息的表单,对必填项进行标注并进行校验,记住人员的基本信息可以通过匹配业主基本信息自动进行填充,操作更加便捷;

3)删除:给出删除提示,并确认操作,删除完成自动刷新列表。

4)维护:点击维护链接,页面跳转到救助人员信息维护表单,对救助对象的低保原因和保证金额已经住址进行更新。

5.5 小区流动人口信息管理设计与实现

功能描述:对小区流动人口的信息录入、维护、查询、删除等操作,信息包括暂住人口信息统计、以及来小区办事等要求的流动人员的登记管理,包括身份证号、姓名、所办事情等。

具体实现:

1)查询:可以通过流动人口的姓名或者身份证号对信息进行检索匹配,显示流动人口基本信息,以及当前生活状况,可以及时对需要帮助的人群送去温暖。

2)新增:显流动人口基本信息的表单,对必填项进行标注并进行校验,需要填入身份证号,入住原因,户籍所在地,工作状况等信息。

3)删除:给出删除提示,并确认操作,完成后自动刷新列表。

4)维护:点击维护链接,页面跳转到流动人口信息维护表单,对已经搬迁的人员进行标注,说明原因等。

5.6 物业管理员信息管理设计与实现

功能描述:对物业管理员信息进行录入、维护、查询以及删除等操作。 具体实现:

1)管理员列表:分页查询,自定义分页方式实现,涉及到jstl的core、fmt等标签。

2)查询:对管理员进行相关检索,后台对输入条件自动解析,避免重复繁杂的代码流程。

3)操作:可对管理员密码重置、编辑、账号冻结和激活、以及删除。

21

4)界面原型:

图5-1 管理员信息管理界面原型

5.7 个人信息详情设计与实现

功能描述:对个人信息进行查看以及维护;对个人密码进行修改。 具体实现:

1)操作:点击个人信息详情链接,新开窗口并显示个人信息;点击个人信息维护跳转到维护表单,不可对用户名和角色进行修改;点击密码更新,可设置新的密码,系统会自动获取当前会话,并取得当前用户id,然后更新该管理员的登录密码;

2)个人信息更新界面原型:

22

图5-1 个人信息更新界面原型

利用jQuery.validate.js对表单进行验证,对手机号的正确性进行验证; 3)个人密码更新界面原型:

图5-1 个人密码更新界面原型

对原始密码进行异步校验,对密码输入的长度和新密码确认进行匹配。

23

第6章 部署与应用

6.1 系统模式

本系统采取B/S开发模式,搭建一个网络化人口信息管理平台,随时随地对人口信息动态进行获取或管理。是一种高效的管理模式。

6.2 系统环境

一个优秀的系统,当然需要一个优秀的平台。对当前系统进行合理分析和部署,使得发挥系统最大的能力。其中,硬件和软件的配置环境非常重要,合理的配置,使得所用的硬件和软件资源能够充分发挥系统的管理能力。 6.2.1 硬件环境

服务器端:高性能计算机一台,需要保证运行的稳定性。选用比较热门的IBM System x3650 M4(7915R51)(CPU型号:Xeon E5-2650 v2 2.6GHz;内存:8GB ECC DDR3;网络控制器:四端口千兆网卡;RAID模式:M5110E RAID 0,1;最大CPU数量2颗;最大内存容量758GB;内存插槽数量:24个),该服务器性能强劲、可靠性高、品质出众。

客户端:普通的计算机或者工作站,内存至少1GB,支持IE6及以上浏览器的操作系统允许的最低配置。 6.2.1 软件环境

服务器端:Mysql关系型数据库、Apache的Tomcat作为web容器、jdk-1.6版本的环境、Windows Server操作系统。

客户端:Google浏览器或火狐浏览器、Windows XP以上操作系统。

24

第7章 结论

该小区人口管理系统主要是方便了人口管理,解决了信息资料更新困难,查阅困难等问题,帮助我们更好的管理小区。此外系统智能化统计分析功能,帮助我们更好的管理小区,提供更加合理化的小区服务。随着社会的发展,对于弱势群体的救助得到更高的重视,该系统着重于弱势群体的救助分析管理,提供更好、更便捷的管理模式,确切落实对弱势群体的救助工作。

软件开发中数据库的设计思想非常重要,一个好的系统依赖一个精良的数据库设计,良好的数据逻辑会让你的系统更加符合开发要求,能更好的完成设计,更完美的解决问题。但是,当前数据库设计冗余太多,所以需要一个更符合现实的数据库设计。其次是系统的整体架构,好的架构当然是让系统更整洁更简单。当前系统有很多公共的业务逻辑没有抽象出来,整体架构显得臃肿,需要再适当的调整,将系统中的公共部分的抽象和剥离,并适当利用重构手段让代码更加整洁,更合理的复用。

25

参考文献

[1] 孙建政. 暂住人口管理系统的设计与实现[D].电子科技大学,2013. [2] 王宇. 街道办事处人口管理系统的设计与实现[D].大连理工大学,2013. [3] 许家瑞,邢兰兰,吕金耀. GIS平台上的人口管理软件设计[J]. 经济研究导

刊,2013,10:215-216.

[4] 高静. 基于JSP技术的社区人口管理系统[J]. 中国管理信息

化,2013,17:85-86.

[5] 王锦. 城市流动人口社区化管理研究[D].大连理工大学,2011.

[6] 刘家骥. 遂宁经开区人口管理系统设计与实现[D].电子科技大学,2011. [7] 刘杨. 河北省流动人口信息管理系统设计与实现[D].河北师范大学,2011. [8] 何莉. 基于JAVA的人口信息管理系统的设计与实现[D].电子科技大

学,2012.

[9] Cay S. Horstmann, GaryCornell. Code Java, VolumeII:Advanced

Features[M]. Prentice Hall;8th Revisededition, 2008.

[10] 周立新, 陈波, 叶乃文, 邝劲筠, 叶乃文, 杜永萍. Java核心技术(卷I

基础知识)(第九版)[M]. 北京: 机械工业出版社, 2014.

[11] 唐振明, 蔡国民, 王晓华, 于瑞云. JavaEE主流开源框架[M]. 北京: 电子

工业出版社, 2011.

[12] 唐振明, 徐洪智, 王晓华, 李丹程. JavaEE架构与程序设计[M]. 北京: 电

子工业出版社, 2011.

[13] 李峰, 刘彦隆. 基于SSH框架与jQuery技术的JavaWeb开发应用[J]. 科

技情报开发与经济, 2010,20(6): 106-108.

[14] 何云强, 李建凤.RBAC中基于概念格的权限管理研究[J]. 河南大学学报(自

然科学版), 2011,41(03): 92-95.

[15] CSDN个人博客. Java Web项目防止多用户重复登录解决方案[EB/OL]

http://blog.csdn.net/chenghui0317/article/details/9373345 2013-07-18

[16] CSDN个人博客. 监听器

http://blog.csdn.net/confirmaname/article/details/8973465 2013-05-25

26

附录

1.1 如何让Hibernate 查询条件自动解析?

解决方案:利用Map存储数据,Map key为查询条件的field,VirtialQueryMap为一个自定义的虚拟类,存储field对应的具体值和查询条件,最后在基础Dao层对象进行自定义解析,对hql智能化拼接。并生成存储具体参数值得Object数组。

1.2 session销毁时,如何对当前登录的用户信息也进行销毁?

解决方案:实现HttpSessionListener,覆写sessionDestroyed方法,用session获sessionId属性对应的值,如果获取的对象不为空,则session.getServletContext().removeAttribute,即当前用户下线。

1.3 iframe的页面跳转的问题?在iframe中实现重定向的时候,会在子窗口中打开父窗口。

解决方案:直接通过PrintWriter输出js的页面跳转代码

。 1.4 在使用AOP(CGLib代理Action类后),使用@Autowired注入的能支持IE6.0以及以上版本的操作系统所需要的最低硬件配置类将会为null。

解决方案:strtus.xml中配置

27