JSP住宅小区物业管理系统(源代码+开题报告+论文+答辩PPT)科大云炬

news2024/11/16 20:46:36

小区物业管理毕业设计

(论文)

 

摘要--------------------------------------------------------------------------------------------1

ABSTRACT-----------------------------------------------------------------------------------2

第1章 绪论---------------------------------------------------------------------------------3

1.1引言---------------------------------------------------------------------------------------3

1.2 背景------------------------------------------------------------------------------------4

1.2.1 B/S模型的优点-----------------------------------------------------------------------4

1.2.2 JSP技术发展背景--------------------------------------------------------------------5

第2章 需求分析----------------------------------------------------------------------------7

2.1 系统的研究意义------------------------------------------------------------------------7

2.2 小区物业管理系统的需求分析------------------------------------------------------7

2.3 系统配置-------------------------------------------------------------------------------9

2.3.1 Hardware (硬件)----------------------------------------------------------------9

2.3.2 Software (软件)--------------------------------------------------------------------9

第3章 系统设计----------------------------------------------------------------------------10

3.1 系统的功能模块设计-------------------------------------------------------------------10

3.2 系统数据库设计-------------------------------------------------------------------------12

3.3 数据库逻辑设计------------------------------------------------------------------------12

3.4 系统运行环境及环境变量设置------------------------------------------------------20

3.5 页面设计---------------------------------------------------------------------------------25

第4章 系统实现----------------------------------------------------------------------------27

4.1系统基本结构--------------------------------------------------------------------------27

4.1.1 系统的基本结构图-------------------------------------------------------------------27

4.1.2 系统的程序目录结构---------------------------------------------------------------28

4.1.3 系统数据库设计----------------------------------------------------------------------29

4.2 系统公共模块设计与实现----------------------------------------------------------30

4.2.1 “common.jsp”文件----------------------------------------------------------------30

4.2.2 “ check.jsp”文件-----------------------------------------------------------------31

4.2.3 “ header.jsp”和“ footer.jsp”文件--------------------------------------------31

4.2.4 “style.css”文件----------------------------------------------------------------------32

4.2.5 建立与数据库相关的JavaBean文件---------------------------------------------33

4.3系统[小区物业管理]主页面----------------------------------------------------------34

4.4 系统[管理模块]实现-------------------------------------------------------------------37

4.4.1 管理员登陆口“login.jsp”页面------------------------------------------------------37

4.4.2 管理密码验证“chklogin.jsp”文件------------------------------------------------38

4.4.3 新闻资讯管理页面“main.jsp” ---------------------------------------------------39

4.4.4 小区公告信息页面“addxinxi.jsp” ----------------------------------------------39

4.4.5 物业信息管理页面“savexinxi.jsp” ---------------------------------------------40

4.4.6 小区留言管理功能页面“modifyxinxi.jsp” -----------------------------------40

4.5 系统[用户注册模块]实现------------------------------------------------------------40

4.5.1 用户注册页面“register.jsp” --------------------------------------------------------41

4.5.2 用户注册页面“adduser.jsp” --------------------------------------------------------42

4.6 系统其他功能页面实现--------------------------------------------------------------43

第5章 软件的测试-----------------------------------------------------------------------43

5.1 什么是软件测试-----------------------------------------------------------------------43

5.2 软件测试的目标与方法---------------------------------------------------------------43

第6章 总结----------------------------------------------------------------------------------44

第7章 致谢----------------------------------------------------------------------------------45

参考文献--------------------------------------------------------------------------------------47

摘要

Internet已经成为人们生活、工作、学习越来越离不开的平台。Web技术已经不在局限于单纯地提供信息服务,而是日益成为一个操作平台,为用户提供强大的服务功能。例如网上电子商务、社会信息数据库等。网络实现了远程通讯,人们能够通过计算机网络进行电子邮件的发送,召开网络会议,网上购物,甚至坐在家里就可以上大学(网上教育)。网络有巨大的潜力待我们去开发与探索。

因此,基于B/S体系架构创建这个小区物业管理网站,紧跟行业发展,满足人们生活、学习的需要。建立一个基于B/S架构的小区物业管理网站,实现信息网络化。通过较丰富的功能将 Web的技术特点体现出来。该系统可供管理员、注册用户、以及游客登录使用。登录者可以查询信息或者发布信息,可以通过此网站了解小区物业管理情况,小区住户还能够查询各种收费。系统中管理员为必不可少的模块项,主要是为了安全有效地存储和管理及维护网站的各类信息,赋予管理员特定的权限,可以对用户和各种信息进行分类,添加,删除,修改等。方便网站的管理与维护。

要实现这样的功能,离不开后台数据库的支持。用户验证注册信息,收集到的用户信息,分析得出的关联规则表等大量的数据都由数据库管理系统管理。本文中数据库服务器端采用了SQL SERVER2000作为后台数据库,以先进的JDBC技术与数据库连接,结合SQL语句处理对用户分类,添加,删除,修改等操作,使Web与数据库紧密联系起来。

关键词 : 小区物业管理 信息管理 SQL SEVER2000 JDBC

ABSTRACT:

With the technology of computer and network of development rapidly, Internet/Intranet is used in common more and more within the world. Nowadays is advancing forward the information social, information system is effective larger and larger .In tradition materials circulation, on account of information management accelerating to materials circulation is not awareness, many a time attach importance to hardware equipment but make light of software equipment. Otherwise, most of materials Circulation Company in China is development in the basic of tradition materials circulation, hardly corporation can supply a synthetic service, the function of contemporaneity materials circulation is not exerted. Materials circulation corporation in China, materials circulation services not only hardware equipment bur software equipment have a distinct gap.

With the development of economy day by day, information age have reached 。All kinds of information tend to digitization、distinctly. That how to make materials circulation management programming、intelligentize is more and more important ,especially in the vehicle management system ,which is a important tache , intelligentize management artifice is thought highly of more and more. Though we should make good use of astronomical memory capacity、high-powered processing capacity, and so on ,these predominances to assistant vehicle of management system so that computer resource are utilized reasonal ,attach to reduce work force and enhance quality of labor indeed.

This article primarily analyses the composing of management system ,includes :requirement、design goal of system、data structure、data flow and mostly characters of system and so on ,emphases introduce system of function model detailed thinking, implement method and key technique of expound, for example, GIS、GPRS and so on.

KEY WORDS: vehicle of management, information system, materials circulation management

第1章 绪论

1.1引言

Internet已经成为人们生活、工作、学习越来越离不开的平台。Web技术已经不在局限于单纯地提供信息服务,而是日益成为一个操作平台,为用户提供强大的服务功能。例如网上电子商务、社会信息数据库等。网络实现了远程通讯, 人们能够通过计算机网络进行电子邮件的发送,召开网络会议,网上购物,甚至坐在家里就可以上大学(网上教育)。网络有巨大的潜力待我们去开发与探索。因此,基于B/S体系架构创建这个小区物业管理网站,紧跟行业发展,满足人们生活、学习的需要。

建立一个基于B/S架构的小区物业管理网站,实现信息网络化。通过较丰富的功能将 Web的技术特点体现出来。该系统可供管理员、注册用户、以及游客登录使用。登录者可以查询信息或者发布信息,可以通过此网站了解小区物业管理情况,小区住户还能够查询各种收费。系统中管理员为必不可少的模块项,主要是为了安全有效地存储和管理及维护网站的各类信息,赋予管理员特定的权限,可以对用户和各种信息进行分类,添加,删除,修改等。方便网站的管理与维护。

要实现这样的功能,离不开后台数据库的支持。用户验证注册信息,收集到的用户信息,分析得出的关联规则表等大量的数据都由数据库管理系统管理。本文中数据库服务器端采用了SQL SERVER2000作为后台数据库,以先进的JDBC技术与数据库连接,结合SQL语句处理对用户分类,添加,删除,修改等操作,使Web与数据库紧密联系起来。

整个个性化页面生成系统主要由使用JSP技术开发实现个性化Web页面生成和JS结合JavaBeans技术实现组件重用两部分组成。

整个系统结构如图1-1所示。

JSP页

小区物业

添加,删除,修改等权限操作

Database服务器

Database服务器

图1-1 系统结构图

本设计主要完成客户端,Web服务器端应用程序和数据库的制作,实现网上小区物业管理系统的创建,管理员注册/登陆、对物业信息进行添加,删除,修改等功能。实现与完善整个基于B/S小区物业管理网站的组织建立和测试工作。

1.2 背景

  1. 2 . 1 B/S模型的优点

几乎没有限制的客户端访问和极其简单化的应用程序部署和管理是B/S模型的优势所在。它和C/S模型比较优点极为突出。

两层技术模型(Two-Tier Architecture)是指客户机直接与服务器交流,没有其他服务介入的技术模型。对用户量在12—100的局域网环境中,两层模型的确是个不错的方案。由于该模型中,所有的用户连接都是被保持的,也就是说即使在空闲状态,连接依然存在。所以,用户的并发请求数量有限的。为了解决这个限制,使得成千上万的用户可以被无顾虑地添加,我们最好选用三层模型B/S结构,即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者说是改进的结构。用户界面完全通过浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成三层结构,是一种全新的软件系统构造技术。B/S模型结构图如下所示:

图1-2 B/S模型结构图

从上图可见 这种结构的一个重要的特点是,用户可以完全不需要安装客户端软件,当然也不需要担心任何软件升级和不兼容等任何客户端所遇到的问题。相比之下,B/S模型的优点显而易见,更适合这个网站的构建,有利于网站的维护和扩充。

  1. 2 . 2 JSP技术发展背景

Web技术的迅猛发展正推动Internet上信息服务类的进步。WWW服务的基础是HTML语言。这个系统模块中用到的JSP技术是在HTML语言的基础上使用脚本语言对网页的对象模型进行编程。JSP全称Java Server Pages,它是由Sun Microsystems公司提出、许多公司参与建立的一种动态网页技术标准。它诞生在1999年6月1日。目前国内外已经在广泛地使用JSP。随着JAVA语言得到普及,越来越多的公司开始关注JSP的前景。

传统的动态网页制作包括CGI、ASP、JSP三种,而JSP具有明显的优势。使

用CGI-BINJ接口是一个最早的动态WEB页面问题的解决方案。缺点,CGI程序

必须从CGI接口读入一长串的字符串,再从字符串中取得所需要的数据并加以处

理。过程十分繁琐。另一个缺点,除了Perl是解释语言外,其他都是编译式的

语言。每次修改后,都必须重新编译一次,这给开发人员带来麻烦,增加了工作

量。ASP和JSP都能取代CGI使网站建设和发展变得简单快捷。尽管JSP技术和

ASP在许多方面都有相似的,但仍然存在很多不同之处,其中最本质上的区别在

于:两者是来源于不同的技术规范组织,其实现的基础,WEB服务器平台要求不

相同。

作为Java平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点。一次写入,之后,可以运行在任何具有符合JavaTM语法结构的环境。取代之过去单一平台开发。

ASP主要工作环境是微软的IIS应用程序结构,又因Activex对象具有平台特性,所以ASP技术不能很容易地实现在跨平台的WEB服务器的工作。

从开发人员的角度来看其区别在于:ASP仅支持组件对象模型COM,而JSP技术提供的组件都是基于JavabeansTM技术或JSP标签库。

JSP标签可扩充性。JSP技术能够使用开发者扩展JSP标签,JSP开发者能定制标签库,减少对脚本语言的依赖

生成可重用的组件。JSP基于组件的技术方法加速了总体开发过程。 JSP组件(Javabeans,或定制的JSP标签)是跨平台可重用的。Javabeans组件可以访问数据库,并能以分布式系统模式工作于UNIX和WINDOWS平台。

易于维护性。 基于JSP技术的应用程序比基于ASP的应用程序易于维护和管理。JSP突出的组件技术使修改内容而不影响逻辑或修改逻辑而不影响内容变得很容易实现。

如上的比较不难看出,JSP技术编写的程序运用要更加灵活,可扩展性更强。

第2章 需求分析

2.1 系统的研究意义

随着市场经济的发展和人们生活水平的提高,住宅小区已经成为人们安家置

业的首选,几十万到几百万的小区住宅比比皆是。人们花的钱越多,不但对住宅

的本身的美观、质量要求越来越高,同时对物业小区的服务和管理也要求很高,

诸如对小区的维修维护,甚至对各项投诉都要求小区管理者做的好,做的完善。

这样要求小区管理者对物业管理进行宏观的和微观的细致管理,其中最好的办法

是用计算机操作的小区物业管理系统来实现对小区物业的管理,这就为我们设计

小区物业管理系统提供了市场需要。而我们设计的小区物业管理系统在现代社会

是最热门的行业,是最关切老百姓实际生活的设计,各种人性化的配置,使管理

者和业主对住宅小区中的事物能更方便、更快捷、更满意的得到答复。伴随着小

区的的规模不断扩大和住户的不断增多,像小区中的汽车,小区附带设施,小区

的各项维修、投诉等都将越来越复杂,工作量也将越来越大。但一直以来人们使

用传统人工的方式管理各种数据,这种管理方式存在着许多缺点,比如:效率低、

保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护

都带来了不少的困难。

随着科学技术的不断提高,计算机科学技术日渐成熟,其强大的功能已为人

们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计

算机应用的一部分,使用计算机对企业单位的各项信息进行管理,具有着手工管

理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密

性好、寿命长、成本低等。这些优点能够极大地提高工作的效率,也是企业的科

学化、正规化管理与世界接轨的重要条件。

2.2 小区物业管理系统的需求分析

通过对某小区的调查,获知小区物业管理系统应具备以下功能:

①对小区所有房屋资料的录入和增,删,改,查询等功能的实现,这是一个小区管理的基础,小区管理都是基于该小区的房产资源而产生的。

②对本小区内住户的详细资料的管理,包括增,删,改,查询等功能的实现,这也是物业管理产生的基础,物业管理都是相对该小区的所有住户而言的。

③有了上述资料后,需要实现实质性的物业管理,本系统主要实现物业设备管理,仪表包括水,电,气表数据管理,收费管理,住户投诉管理,住户报修管理,设备维修管理,停车场管理,这些基本的物业管理功能构成了小区物业管理的主体,其中与住户密切的是仪表数据和收费管理,仪表数据管理模块管理每个住户的水,电,气表的资料,统计住户每月的用量以及需要交纳的费用,收费管理记录物业公司对住户的每一笔收费,包括水,电,气等使用费用和物业管理费用,物业维修费用等费用。住户投诉管理和住户维修管理分别记录住户对物业公司的不满的投诉和针对各种设施向物业公司的报修,物业设备和设备维修管理则是对一些整个小区的公共设施的管理和维修记录,比如小区大门和小区里户外的健身器材。

④各种物业统计报表,包括物业设备统计报表,所有住户的水,电,气仪表资料的统计,各种收费统计,住户投诉统计,住户报修统计,物业设备维修统计等。这样以便物业公司对整个小区的物业管理情况有个全面的了解。

  • 物业管理(系统):实现用户注册、登录、密码修改,等功能并对其权限进行控制以方便不同用户对其信息进行操作,便于归档查询统计,也保障了系统的安全性。其中包括的注册/登录信息有(登录名,登陆密码,用户描述等)。
  • 住户信息管理:实现对入住业主信息的录入,管理和查询的功能。
    业主信息管理包括(业主ID,业主姓名,出生年月,籍贯,性别,工作单位及地址,邮编,身份证号码,联系电话,开户银行,银行帐号,入住时间,迁出时间等)
  • 房产信息管理:实现对小区房产信息的录入,管理和查询的功能。
    房产信息管理包括(房间编号,物业地址,建筑面积,使用面积,转修情况,单价,总价,是否已经售出,买主编号,买主姓名,备注等)
  • 物业设备管理:实现对小区物业设备的录入,管理和查询的功能。
    物业设备管理包括(设备编号,设备名称,型号,品牌,所属部门,购买日期,事故记录等)
  • 仪表数据管理:实现对小区物业仪表数据的录入,管理和查询的功能。
    仪表数据管理包括的主要内容有(仪表编号,住户姓名,物业地址,年份,月份,上月数据,本月数据,本月用量,单价,本月费用,上月抄表日期,本月抄表日期,本月交费日期,办理人等)
    物业对住户的仪表管理包括水表,电表,气表。
  • 停车场管理:实现对小区物业仪表数据的录入,管理和查询的功能。
    停车场管理主要包括(车位编号,车位位置,停车住户,物业地址,使用日期,备注等)。
  • 收费管理:实现对小区物业管理收费,仪表使用情况收费的录入,管理和查询的功能。
    收费管理主要包括(收费编号,住户姓名,物业地址,年份,月份,收费项目,收费方式,应收总额,已交金额,欠款金额,交费日期,办理人,备注等)。
  • 住户投诉管理:实现对小区住户投诉的录入,管理和查询的功能。
    住户投诉管理主要包括(投诉编号,投诉日期,接待人,投诉住户,物业地址,电话,处理日期,处理人员,投诉内容,处理情况等)。
  • 用户报修管理:实现对小区用户报修的录入,管理和查询的功能。
    用户报修管理主要包括(报修编号,报修日期,接待人,报修住户,物业地址,电话,完成日期,维修人员,服务费用,屋料费用,合计费用,报修内容,维修情况等)。
  • 物业设备维修管理:实现对小区物业设备维修的录入,管理和查询的功能。

物业设备维修管理主要包括(维修编号,设备编号,设备名称,维修日期,完成日期,维修费用,维修人员,维修内容,维修情况等)。

2.3 系统配置

2.3.1 Hardware (硬件)

硬件环境(访问者):建议用户在允许的情况下采用较高配置硬件资源。

硬件环境(开发者):AMD1.5G2200+处理器,512M内存,80G磁盘空间。

2.3.2 Software (软件)

访问者:IE、Netscape等浏览器。最好是IE浏览器,本网页在IE6.0浏览器下通过了测试。

开发者:

1)Operating System (操作系统):Windows2000SP4

2)Tools (工具): DreamweaverMX 2004

3)Database (数据库):SQL SERVER 2000

4) Server (服务器) :ApacheTomcat5.0

5)Run Circumstance (运行环境) :安装JDK1.4支持Java运行。

6)Technic (技术):前台网页的设计采用JSP技术制作。JSP网页吸引人的地方之一就是能结合JavaBeans技术来扩充网页中程序的功能。JSP程序实际上JSP元素、Java程序和HTML文档的混合体,JSP以Java作为其脚本语言,几乎继承了Java语言的所有特点。

第3章 系统设计

3.1 系统的功能模块设计

房产公司物业管理系统

用户管理(系统)

基本资料管理

物业管理

报表统计

图1 功能模块图

基本资料管理

员工资料管理

房产资料管理

住户资料管理

图2 子功能模块图

系统管理

注 册

登 录

修改密码

添加新用户

图3 子功能模块图

物业管理

住户报修管理

住户投诉管理

收费管理

设备维修管理理

仪表数据管理

物业设备管理

停车场管理

图4 子功能模块

报表统计

设备维修统计

住户报修统计

住户投诉统计

物业设备统计

收费统计

仪表数据统计

图 5子功能模块图

3.2 系统数据库设计

用户表={序号+登录名+登陆密码+用户描述}

住户表={住户编号+物业地址+房型+ 建筑面积+使用面积+业主名称+籍贯+工作单位+邮编+身份证号+电话+开户银行+银行帐号+入住时间+迁出时间+性别}

房产资源表={房间编号+物业地址+建筑面积+使用面积+房型+装修情况+单价+总价+买主+备注+是否已售出}

物业设备表={设备编号+设备名称+型号+品牌+所属部门+购买日期+事故记录}

停车场信息表={车位编号+车位位置+停车住户+物业地址+开始日期+截止日期+ 备注}

住户投诉表={投诉编号+投诉日期+接待人员+投诉住户+物业地址+电话+处理日期+处理人员+投诉内容+处理情况}

住户报修表={报修编号+报修日期+接待人员+报修住户+物业地址+电话+完成日期+维修人员+服务费用+物料费用+合计费用+报修内容+维修情况}

设备维修表={维修编号+设备编号+设备名称+维修日期+完成日期+维修费用+维修人员+维修内容+维修情况}

仪表资料表={仪表编号+住户姓名+物业地址+年份+月份+上月资料+本月用量+单价+本月费用+上月抄表日期+本月抄表日期+办理人}

物业收费表={收费编号+住户姓名+物业地址+年份+月份+收费项目+收费方式+应收总额+已交金额+欠费金额+交费日期+办理人+备注}

仪表收费表={收费编号+住户姓名+物业地址+年份+月份+收费项目+收费方式+应收总额+已交金额+欠费金额+交费日期+办理人+备注}

3.3 数据库逻辑设计

逻辑结构设计的任务就是把概念结构转换为与筛选的dbms所支持的数据模型相符合的过程。该系统的逻辑结构就是将概念结构(基本E-R图)转换为SQL SERVER 所支持的关系型数据模型,具体转换规则如下:

1.基本E-R图转换为SQL SERVER 所支持的关系型数据模式(表),实体的属性就是关系的属性,实体的码就是关系的码

2.在占用设计过程中,运用规范化理论与方法对实体尽量分解成BCNF模式

3.一个联系转化为一个关系模式,与该联系相连的各实体的码,以及联系的属性转化为关系属性,对象同码的关系模式进行合并。

根据上述转换原则对该系统的实体进行了分解,同时,采用数据字典的方式对该系统的逻辑结构进行描述。参见该系统数据库字典。

用户表

表名:USERtable

表结构:

字段名类型说明
UsernamevarcharNot null
PasswordvarcharNot null
TruenamevarcharNot null
RegtimeDateNot null

数据由用户录入得到,主键是序号由系统自动生成

住户表

表名:client

表结构:

字段名类型说明
住户编号varcharNot null
物业地址varcharnull
房型varcharnull
建筑面积varcharnull
使用面积varcharnull
业主姓名varcharnull
籍贯varcharnull
工作单位varcharnull
邮编varcharnull
身份证号varcharnull
电话varcharnull
开户银行varcharnull
银行帐号varcharnull
入住时间Datenull
迁出时间varcharnull
性别varcharnull

数据由用户录入得到,主键是序号由系统自动生成

房产资源表

表名:house

表结构:

字段名类型说明
房间编号varcharNot null
物业地址numericnull
使用面积numericnull
房型varcharnull
装修情况varcharnull
单价moneynull
总价moneynull
买主编号varcharnull
买主姓名varcharnull
备注varcharnull
是否已售出varcharnull

数据由用户录入得到,主键是序号由系统自动生成

物业设备表

表名: equipment

表结构:

字段名类型说明
设备编号varcharNot null
设备名称varcharnull
型号varcharnull
品种varcharnull
所属部门varcharnull
购买日期Datetimenull
事故记录varcharnull

数据由用户录入得到,主键是序号由系统自动生成

停车场信息表

表名: park

表结构:

字段名类型说明
车位编号varcharNot null
车位位置varcharnull
停车住户varcharnull
物业地址varcharnull
开始日期varcharnull
截止日期varcharnull
备注varcharnull

数据由用户录入得到,主键是序号由系统自动生成

住户投诉表

表名: toushu

表结构:

字段名类型说明
投诉编号varcharNot null
投诉日期Datetimenull
接待人员varcharnull
投诉住户varcharnull
物业地址varcharnull
电话varcharnull
处理日期varcharnull
处理人员varcharnull
投诉内容varcharnull
备注varcharnull

数据由用户录入得到,主键是序号由系统自动生成

住户报修表

表名:baoxiu

表结构:

字段名类型说明
报修编号VarcharNot null
报修日期DatetimeNot null
接待人员CharNot null
报修住户CharNot null
物业地址VarcharNot null
电话VarcharNot null
完成日期VarcharNot null
维修人员VarcharNot null
服务费用CharNot null
物料费用VarcharNot null
合计费用VarcharNot null
报修内容VarcharNot null
维修情况VarcharNot null

设备维修表

表名:repair

表结构:

字段名类型说明
维修编号VarcharNot null
设备名称VarcharNot null
维修日期DatetimeNot null
完成日期VarcharNot null
维修费用VarcharNot null
维修人员VarcharNot null
维修内容VarcharNot null
维修情况VarcharNot null

数据由用户录入得到,主键是序号由系统自动生成

水表资料表

表名:water

表结构:

字段名类型说明
仪表编号VarcharNot null
住户姓名Varcharnull
物业地址Datetimenull
年份Intnull
月份Intnull
上月资料numericnull
本月资料numericnull
本月用量numericnull
单价numericnull
本月费用numericnull
上月抄表日期datetimenull
本月抄表日期datetimenull
本月交费日期datetimenull
办理人Varcharnull

数据由用户录入得到,主键是序号由系统自动生成

电表资料表

表名:power

表结构:

字段名类型说明
仪表编号VarcharNot null
住户姓名Varcharnull
物业地址Datetimenull
年份Intnull
月份Intnull
上月资料numericnull
本月资料numericnull
本月用量numericnull
单价numericnull
本月费用numericnull
上月抄表日期datetimenull
本月抄表日期datetimenull
本月交费日期datetimenull
办理人Varcharnull

数据由用户录入得到,主键是序号由系统自动生成

气表资料表

表名:gas

表结构:

字段名类型说明
仪表编号VarcharNot null
住户姓名Varcharnull
物业地址Datetimenull
年份Intnull
月份Intnull
上月资料numericnull
本月资料numericnull
本月用量numericnull
单价numericnull
本月费用numericnull
上月抄表日期datetimenull
本月抄表日期datetimenull
本月交费日期datetimenull
办理人Varcharnull

数据由用户录入得到,主键是序号由系统自动生成

物业收费表资料表

表名:wuyefee

表结构:

字段名类型说明
收费编号VarcharNot null
住户姓名Varcharnull
物业地址Datetimenull
年份Intnull
月份Intnull
收费项目Varcharnull
收费方式Varcharnull
应收总额numericnull
已交金额numericnull
欠费金额numericnull
交费日期datetimenull
办理人Varcharnull
备注Varcharnull

数据由用户录入得到,主键是序号由系统自动生成

仪表收费表资料表

表名:yibiaofee

表结构:

字段名类型说明
收费编号VarcharNot null
住户姓名Varcharnull
物业地址Datetimenull
年份Intnull
月份Intnull
收费项目Varcharnull
收费方式Varcharnull
应收总额numericnull
已交金额numericnull
欠费金额numericnull
交费日期datetimenull
办理人Varcharnull
备注Varcharnull

数据由用户录入得到,主键是序号由系统自动生成

3.4系统运行环境及环境变量设置

 第一步:----安装J2SDK:

  到SUN官方站点(http://java.sun.com)下载J2SDK的安装文件:j2sdk-1_4_2_04-windows-i586-p.exe,下载之后安装好J2SDK;安装完之后,设置环境变量:我的电脑---属性---高级---环境变量;

选择---系统变量(S):

设置JAVA_HOME环境变量:

  单击---新建,在变量名中输入:JAVA_HOME

  在变量值中输入:D:\Java

  (假设J2SDK安装在目录D:\Java下,反正就是J2SDK的安装目录。)

  然后---确定,到此已经设置好JAVA_HOME环境变量。

  设置CLASSPATH环境变量:

  单击---新建,在变量名中输入:CLASSPATH

  在变量值中输入:D:\Java\bin;.;D:\Java\lib;D:\Java\lib\dt.jar;D:\Java\lib\tools.jar

  (中间的点号“.”和分号“;”必不可少。)

  然后---确定,到此已经设置好CLASSPATH环境变量。

  设置PATH环境变量:

  单击---新建,在变量名中输入:PATH

  在变量值中输入:D:\Java;.;D:\Java\bin

  (中间的点号“.”和分号“;”必不可少。)

  然后---确定,到此已经设置好JAVA_HOME环境变量。

  三个环境变量设置好后,写一个简单的java程序来测试J2SDK是否已安装成功:

  在D:\下新建一个目录test;然后写如下程序: 
  public class Test { 
  public static void main(String args[]) { 
    System.out.println("This is a test program."); 
   } 
  }

  将上面的这段程序保存为文件名为Test.java的文件,保存在目录D:\test下。

  然后打开命令提示符窗口,cd到你的test目录,然后键入下面的命令  

    javac Test.java 
    java Test 

  此时如果看到打印出来This is a test program.的话说明安装成功了,

  如果没有打印出这句话,你需要仔细检查一下你的配置情况。 

  如果上面的J2SDK安装成功的话,接下来继续安装Tomcat:

  第二步:----安装Tomcat:

   到tomcat官方站点(tomcat-4/">http://www.apache.org/dist/jakarta/tomcat-4/)下载tomcat:

   jakarta-tomcat-4.1.30.exe,下载之后安装。(比如安装在D:\Tomcat下。)

   安装完之后,设置环境变量:我的电脑---属性---高级---环境变量;

   选择---系统变量(S):

   设置CATALINA_HOME环境变量:

   单击---新建,在变量名中输入:CATALINA_HOME

   在变量值中输入:D:\Tomcat

   然后---确定,到此已经设置好CATALINA_HOME环境变量。

   设置CATALINA_BASE环境变量:

   单击---新建,在变量名中输入:CATALINA_BASE

   在变量值中输入:D:\Tomcat

   然后---确定,到此已经设置好CATALINA_BASE环境变量。

   然后修改环境变量中的CLASSPATH,把Tomat安装目录下的common\lib下的servlet.jar追加到CLASSPATH中去,

   修改后的CLASSPATH如下: 

CLASSPATH=D:\Java\bin;.;D:\Java\lib;D:\Java\lib\dt.jar;D:\Java\lib\tools.jar;
D:\Tomcat\common\lib\servlet.jar 

   接着可以启动tomcat,在IE中访问http://localhost:8080,如果看到

tomcat的欢迎页面的话说明安装成功了。

   如果上面的tomcat安装成功的话,接下来继续安装JSP访问SQL Server 2000的驱动程序:

  第三步:----安装JSP访问SQL Server 2000的驱动程序:

   从微软的网站上下载驱动程序:SQL Server 2000 For JDBC 驱动程序,在Google中随便搜索就有。

   然后将它安装好。(比如安装目录是D:\SQLDriverForJDBC。)

   然后必须将安装目录中的lib目录下三个jar文件:

   msbase.jar,mssqlserver.jar,msutil.jar拷贝到Tomcat目录下common\lib目录下,之后,修改环境变量中的CLASSPATH,
把SQL Server 2000 For JDBC 驱动程序安装目录下的
D:\SQLDriverForJDBC\lib\msbase.jar;D:\SQLDriverForJDBC\lib\mssqlserver.jar;
D:\SQLDriverForJDBC\msutil.jar;
追加到CLASSPATH中去,修改后的CLASSPATH如下: 

CLASSPATH=D:\Java\bin;.;D:\Java\lib;D:\Java\lib\dt.jar;
_D:\Java\lib\tools.jar;D:\LubeeTomcat\common\lib\servlet.jar;
_D:\SQLDriverForJDBC\lib\msbase.jar;D:\SQLDriverForJDBC\lib\mssqlserver.jar;
D:\SQLDriverForJDBC\msutil.jar

    必须重新启动Tomcat!

    这样做的目的是,jsp页面在编译过程中不会出现找不到sql server driver类库的问题

写一个简单的用来测试连接SQL Server 2000的JSP代码

  <%@ page import="java.lang.*, java.io.*, java.sql.*, java.util.*" contentType="text/html;charset=gb2312" %>
  <html>
  <body>
  <% Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
   String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";
   //pubs 为你的数据库的
   String user="sa";
   String password="admin";
   Connection conn= DriverManager.getConnection(url,user,password);
   Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
   String sql="select job_id,job_desc from jobs";
   ResultSet rs=stmt.executeQuery(sql);
   while(rs.next()) { %>
    您的第一个字段内容为:<%=rs.getString(1)%>

    您的第二个字段内容为:<%=rs.getString(2)%>

<% } %>
  <% out.print("数据库操作成功,恭喜你"); %>
  <% rs.close();
   stmt.close();
   conn.close();
  %>
  </body>
  </html>

  将上面的JSP代码保存为sql_test.jsp,放在/Root目录下。

  在地址中输入:http://localhost:8080/sql_test.jsp,如果全部配置成功的话,将显示如下:

  您的第一个字段内容为:1
  您的第二个字段内容为:New Hire - Job not specified
  您的第一个字段内容为:2
  您的第二个字段内容为:Chief Executive Officer
  您的第一个字段内容为:3
  您的第二个字段内容为:Business Operations Manager
  您的第一个字段内容为:4
  您的第二个字段内容为:Chief Financial Officier
  您的第一个字段内容为:5
  您的第二个字段内容为:Publisher
  您的第一个字段内容为:6
  您的第二个字段内容为:Managing Editor
  您的第一个字段内容为:7
  您的第二个字段内容为:Marketing Manager
  您的第一个字段内容为:8
  您的第二个字段内容为:Public Relations Manager
  您的第一个字段内容为:9
  您的第二个字段内容为:Acquisitions Manager
  您的第一个字段内容为:10
  您的第二个字段内容为:Productions Manager
  您的第一个字段内容为:11
  您的第二个字段内容为:Operations Manager
  您的第一个字段内容为:12
  您的第二个字段内容为:Editor
  您的第一个字段内容为:13
  您的第二个字段内容为:Sales Representative
  您的第一个字段内容为:14
  您的第二个字段内容为:Designer
  数据库操作成功,恭喜你 

  以上所有的内容涉及的相关条件:

  操作系统:Window 2000 Server
  J2SDK版本:j2sdk-1_4_2_04-windows
  Tomcat版本:jakarta-tomcat-5.0
  本地数据库:SQL Server 2000

3.5 页面设计

客户端页面是用户和服务器之间实现人机交互的一个介质。对它的制作要求简洁大方,色彩搭配要协调。

第4章 系统实现

4.1系统基本结构

4 . 1 . 1 系统的基本结构图

图4.1系统的基本结构图

4 . 1 . 2 系统的程序目录结构

图4.2系统目录

4 . 1 . 3 系统数据库设计

分析功能要求,为本系统后台数据库(xiaoquixinxi)设计4个表,见表4.1-4.4。

表4.1 用户密码表(userpassword)

表4.2 小区公告资料表(xinxi)

表4.3 小区留言资料表(liuyan)

表4.4 小区住户和房产资料表(FANGCHANZILIAO)

4.2 系统公共模块设计与实现

下面开始设计与实现每个子模块。

公共模块中一共有4个JSP文件和一个CSS文件:“common.jsp”、“check.jsp”、“header.jsp”、“footer.jsp”和“style.css”。以下开始详细说明各个文件的功能。

4 . 2 . 1 “common.jsp”文件

“common.jsp”文件包含其他JSP文件中需要导入的Java类和包以及系统各页面要使用的日期。“common.jsp”文件的程序如下:

<%@ page import="java.io.*"%>

<%@ page import="java.util.*"%>

<%@ page import="java.sql.*"%>

<%@ page import="java.util.*"%>

<%@ page import="java.text.*"%>

<%@ page import="xiaoquxinxi.*"%>

<%

java.util.Date cur_time = new java.util.Date();

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");

String dateString = formatter.format(cur_time);

SimpleDateFormat _formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

String _dateString = _formatter.format(cur_time);

%>

说明:程序除了将常用的Java包和类包含近来外,还将自定义包xiaoquxinxi包含进来,这个包有2个JavaBean程序:DBConnectionManer、DBSQLManager。程序定义了两个String类型变量:String和_dateString,前者是表示当前系统日期,后者表示当前系统日期时间。

4 . 2 . 2“ check.jsp”文件

“check.jsp”文件用来判断系统用户是否登陆,防止非法用户登陆到系统对系统进行破坏,其程序如下:

<% if((String)session.getValue("Enter")!="true")

{ String errmsg="error2";

response.sendRedirect("login.jsp?errmsg="+errmsg); }

%>

程序代码中使用了会话(session)对象。会话对象类似与普遍应用程序中的全局变量。在一个Web应用程序中,当一个用户访问该应用程序时,这个会话对象使这个用户在该Web应用的所有页面共享数据。可以使用putValue()和getValue()方法来保存和读取会话对象中的数据。上代码中通过读取会话对象中的数据Enter是否为Ture来判断系统管理员是否登陆。系统管理员在成功登陆后会将Enter数据保存为Ture。“check.jsp”文件主要用在系统后台管理页面中。

4 . 2 . 3“ header.jsp”和“ footer.jsp”文件

为了使小区物业管理系统的所有页面具有统一的风格,把页面头和尾的代码分开,分别放在单独的JSP文件中,在其他页面中使用时,利用include指令将他们包含进来即可。这样可以简化页面的重复代码,为以后的管理和维护工作提供方便。

header.jsp”文件程序如下:

<%@ page contentType="text/html;charset=gb2312" %>

<style type="text/css">

<!--.style1 {color: #0000CC}a:link {text-decoration: none;

}a:visited {text-decoration: none;}

a:hover {text-decoration: underline;}a:active {text-decoration: none;

}.style2 {font-size: 12px}.style3 {color: #0000CC;font-size: 12px;

font-weight: bold;}--></style><div align="center">

<div align="center"> <table width="700" border="1" cellpadding="0" cellspacing="0" bordercolor="#CCCCCC"> <tr> <td width="108" height="90" align="center" bgcolor="#FFFF99"><img src="../img/logo1.jpg" width="107" height="75"><br> </td> <td width="513" align="center"><img src="../img/xiaoqu.jpg" width="512" height="87"></td> <td width="71" align="center" bgcolor="#CC9900"> <a href="admin/login.jsp"><strong>网站管理</strong></a></td </tr></table> <table width="700" border="1" cellpadding="0" cellspacing="0" bordercolor="#CCCCCC"><tr bgcolor="#FFAC03"><td width="152"><div align="center"><a href="index.jsp" class="style1"><strong>首页</strong></a></div></td><td width="178"><div align="center" class="style1 style2"><a href="xiaoqugonggao.jsp" target="_blank"><strong>小区公告</strong></a></div></td><td width="178" align="right" bgcolor="#FFAC03"><div align="center"><a href="xiaoquliuyan.jsp" target="_blank" class="style2"><strong>&#23567;&#21306;&#30041;&#35328;</strong></a></div> <div align="center"></div> <div align="center"></div></td> <td width="164" align="right"><div align="center"><span class="style3">当前日期</span>:<%=dateString%></div></td> </tr> </table></div>

footer.jsp”文件程序如下:

<%@ page contentType="text/html;charset=gb2312" %>

<style type="text/css"><!--.style1 {font-size: 16;font-weight: bold;color: #993333;}--></style><br><table width="700" border="0" cellspacing="0" cellpadding="0"><tr><td height="79" align="center"><p align="left" class="style1 ">姓名:李凯 学号:20034707 </p><p align="left" class="style1 ">毕业设计选题(JSP+SQL SERVER2000实现的小区物业管理系统)</p> <p align="left" class="style1 ">Email:<a href="mailto:likai0221@126.com">likai0221@126.com</a></p></td></tr>

</table></div>

4 . 2 . 4“style.css”文件

在“style.css”文件中,可以定义Web应用程序用到的所有样式表,其程序如下:

A:link {FONT-SIZE: 9pt; COLOR: #000000; TEXT-DECORATION: underline

}A:hover {FONT-SIZE: 9pt; COLOR: #ff0000; TEXT-DECORATION: underline

}A:visited {FONT-SIZE: 9pt; COLOR: #0000ff; TEXT-DECORATION: underline

}.text {FONT-SIZE: 9pt; COLOR: #000000; TEXT-DECORATION: none

}.title {FONT-SIZE: 16px; COLOR: #000000; TEXT-DECORATION: none

}.body {FONT-SIZE: 12pt; COLOR: #000000; TEXT-DECORATION: none

}body {background-image: url(../images/wd.jpg);

}

其中,A(锚)元素是在样式表中用的最多的元素,它表示动态链接的4种不同的状态:link(未访问的链接)、hover(鼠标在链接上)、active(激活链接)、visited(已访问的链接)。程序中定义了链接在其中3个状态时显示的格式:未访问的链接是黑色(COLOR属性为“#000000”)、有下划线(TEXT-DECORATION属性为“underline”),鼠标指针放在链接上时,链接是红色(COLOR属性为“ff0000”),有下划线(TEXT-DECORATION属性为“underline”),已经访问的链接是蓝色(COLOR属性为“0000ff”)、有下划线(TEXT-DECORATION属性为“underline”)。

FONT-SIZE属性是用来定义字体大小。COLOR属性是设置颜色。

CSS脚本中还声明了三个类:text、title、body,及制作了三个新的样式表示符在本系统Web应用程序中使用。

4 . 2 . 5 建立与数据库相关的JavaBean文件

DBConnectionManager.java程序如下:

package xiaoquxinxi;import java.sql.*;public class DBConnectionManager {

private String driverName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";

private String url = "jdbc:microsoft:sqlserver://localhost:1433;databaseName=xiaoquxinxi";

private String user = "sa";private String password = "123";

public void setDriverName(String newDriverName) {this.driverName = newDriverName;}

public String getDriverName() {return driverName;}

public void setUrl(String newUrl) { this.url = newUrl;}

public String getUrl() { return url;}

public void setUser(String newUser) { this.user = newUser;}

public String getUser() {return user;}

public void setPassword(String newPassword) { this.password = newPassword;}

public String getPassword() { return password;}

public Connection getConnection() {try { Class.forName(driverName); return DriverManager.getConnection(url, user, password); } catch (Exception e) { e.printStackTrace(); return null;}}}

程序定义了驱动类型名称变量driverName和连接字符串变量url,并给它们赋初值,表示当前连接SQL Server2000数据库xiaoquxinxi。getConnection()方法用于获得数据库连接实例。最后编译程序得到类文件DBConnectionManager.class

DBSQLManager.java程序如下:

package xiaoquxinxi;import java.sql.*;import xiaoquxinxi.*;public class DBSQLManager{protected Connection conn = null;//Connection对象protected Statement stmt = null;//Statement对象protected ResultSet rs = null;//记录结果集protected String sqlStr;//SQL语句public DBSQLManager() {

try{sqlStr = "";DBConnectionManager dcm = new DBConnectionManager();conn = dcm.getConnection();stmt = conn.createStatement();}catch (Exception e) {System.out.println(e);}}public Statement getStmt() {return stmt;}public Connection getConn() {return conn;}public ResultSet getRs() {return rs;}public void setSqlStr(String newSqlStr) {this.sqlStr=newSqlStr;}

public String getSqlStr() {return sqlStr;}public void executeQuery() throws Exception {rs = stmt.executeQuery(sqlStr);}public void executeUpdate() throws Exception {stmt.executeUpdate(sqlStr);}public void close() throws SQLException {

if ( stmt != null ) {stmt.close();stmt = null;}conn.close();conn = null;}};

最后编译得到类文件DBSQLManager.class

最后将文件DBConnectionManager.class;DBSQLManager.class 拷贝到Tomcat服务器中本程序相应目录下。

4.3系统[小区物业管理]主页面

系统游览主页面“index.jsp”是用户游览小区物业管理系统的主页面,是进入其他功能页面的向导,并且把小区公告,小区留言的标题以列表的形式显示出来,方便各类用户的使用,代码如下:

<%@ page contentType="text/html;charset=gb2312" %>

<%@ include file="../incoming/common.jsp"%>

<html><head><title>小区信息</title>

<link href="../incoming/style.css" rel="stylesheet" type="text/css">

<script language="javascript">function checkform() {

if (form1.userid.value.length<1 || form1.userid.value.length>15){

alert("请输入正确的用户名!");

form1.userid.focus();return false;}

if (form1.password.value.length<1 || form1.password.value.length>15){

alert("请输入正确的密码!");form1.password.focus();return false;}

return true;}</script><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><style type="text/css"><!--a:link {text-decoration: none;color: #0000FF;}a:visited {text-decoration: none;}a:hover {text-decoration: underline;

color: #000000;}a:active {text-decoration: none;}.style1 {font-size: 16pt}.style2 {font-size: 16px}.style6 {font-size: 12px}.style8 {font-size: 18px}.style9 {

font-size: 24px;font-weight: bold;}--></style></head><body bgcolor="#ffffff">

<%@ include file="header.jsp"%><table width="700" height="373" border="1" cellpadding="0" cellspacing="0"><tr><td width="194" height="371" bgcolor="#66FFFF"><div align="center">用户登录 </div><form name="form1" method="post" action="chklogin.jsp"><table width="100%" border="1" cellpadding="0" cellspacing="0" bordercolor="#CCCCCC"> <tr> <td width="45%" height="25" align="right">用户名:</td> <td width="55%"> <input name="userid" type="text" id="userid2" size="8" maxlength="25"> </td> </tr><tr> <td height="27" align="right">密码</td> <td> <input name="password" type="password" id="password" size="8" maxlength="20"></td> </tr> <tr>

<td height="34" colspan="2" align="center"> <input type="submit" name="Submit" value="登录" onClick="javascript:return(checkform());"> <input type="reset" name="Submit2" value="取消"> </td> </tr> <tr> <td height="36" colspan="2"><div align="center"> 若不是本站会员,请在此 <a href="register.jsp">注册 </a></div></td> </tr></table> </form><p>&nbsp;</p> <table height="162" border="1" cellpadding="0" cellspacing="0"> <tr> <td width="192" height="33" bgcolor="#99CCFF"><div align="center">本站公告 </div></td></tr> <tr> <td height="115" bgcolor="#99CCFF"><marquee scrollamount='1' scrolldelay='30' direction='UP' id='adv' onMouseOver='adv.stop()' onMouseOut='adv.start()'>

本站主要有住户资料管理、投诉、住户报修、物业收费查询、等几个主要的功能!

</marquee> </td></tr></table></td><td width="500" bgcolor="#FFFFCC"><div align="center"> <span class="style2"><a class="title style6">

<%!String url,sql; %><%!Connection conn;//定义数据库连接对象 %>

<%!ResultSet rs;//定义结果集对象 %> <%!Statement stmt;//定义SQL语句对象 %> <%! int i;%>

</a> </span> <div align="center" class="style9"><font color="#0000FF">小区信息</font> </div> <table width="95%" height="291" align="center" bordercolor="#663333"> <tr> <td width=16% align=center bgcolor="#FFCC99" class="style2"><span class="style8"><font color="#0000FF">小区公告</font></span></td><td width=8% align=center bgcolor="#CCCC66" class="style2"><span class="style8"><font color="#0000FF">公告日期</font></span></td><td width=16% align=center bgcolor="#CC99CC" class="style2"><span class="style8"><font color="#0000FF">小区留言</font></span></td><td width=8% align=center bgcolor="#CCCC66" class="style2"><span class="style8"><font color="#0000FF">留言日期</font></span></td></tr> <%try{Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=xiaoquxinxi";

conn=DriverManager.getConnection(url,"sa","123");//建立与数据库的连接

stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); sql="select top 5 * from xinxi,liuyan order by newid() ";

rs=stmt.executeQuery(sql);//查询数据库 while( rs.next()){ %>

<tr> <td width=16% align=center bgcolor="#CCFF99" class="style2"><div align="center"><font color="#0000FF"><a href="xinxi.jsp?id=<%=rs.getString("id")%>" target="_blank"><%=rs.getString("biaoti")%></font></div></td> <td width=8% align=center bgcolor="#CCFF99" class="style2"><div align="center"><font color="#0000FF"><%=rs.getString("riqi")%></font></div></td><td width=16% align=center bgcolor="#CC9966" class="style2"><div align="center"><font color="#0000FF"><a href="liuyan.jsp?id1=<%=rs.getString("id1")%>" target="_blank"><%=rs.getString("timu")%></font></div></td><td width=8% align=center bgcolor="#CC9966" class="style2"><div align="center"><font color="#0000FF"><%=rs.getString("riqi1")%></font></div></td></tr>

<% } rs.close();stmt.close(); conn.close();}catch(Exception e){ out.println(e);} %>

</table> <table width="500" align="center"> <tr><td width="243"><div align="center"><a href="xiaoqugonggao.jsp" target="_blank">小区公告(更多......)</a></div></td> <td width="243"><div align="center"><a href="xiaoquliuyan.jsp" target="_blank">小区留言(更多......)</a></div></td> </tr> </table><div align="center"><a href="xiaoqugonggao.jsp" target="_blank" class="title style2"><span class="style2"> </span></a></div></div></td> </tr></table>

<%@ include file="incoming/footer.jsp"%>

</body></html>

页面运行效果如图4.3

图4.3 小区物业管理主页面运行效果

4.4 系统[管理模块]实现

4 . 4 . 1 管理员登陆口“login.jsp”页面

管理员入口代码如下:

<%@ page contentType="text/html;charset=gb2312" %>

<%@ include file="../incoming/common.jsp"%>

<html><head><title>小区管理</title>

<link href="../incoming/style.css" rel="stylesheet" type="text/css">

<script language="javascript">

function checkform() {

if (form1.userid.value.length<1 || form1.userid.value.length>15){

alert("请输入正确的用户名!");

form1.userid.focus();

return false;}

if (form1.password.value.length<1 || form1.password.value.length>15){

alert("请输入正确的密码!");form1.password.focus();

return false;}return true;}</script></head><body>

<div align="center"><br><a class="title">管理员登录</a><br>

</div><form name="form1" method="post" action="chklogin.jsp">

<table width="398" height="215" border="1" align="center" cellpadding="0" cellspacing="0"><tr> <td width="394" height="213"><table width="91%" height="80%" border="0" align="center" cellpadding="1" cellspacing="1"> <tr> <td colspan="2" align="center"><font color="#CC3333">

<% if(request.getParameter("errmsg")!=null) {

String errmsg = request.getParameter("errmsg"); if(errmsg.equals("error1"))

out.print("您输入的用户名或密码不正确,请重新输入!"); }%>

</font></td> </tr><tr><td width="120" align="right">用户名:</td>

<td width="208"> <input name="userid" type="text" id="userid" size="15" maxlength="20" > </td> </tr> <tr> <td width="120" align="right">密码:</td>

<td width="208"> <input name="password" type="password" id="password" size="15" maxlength="20"></td> </tr> <tr> <td width="120" height="23" align="right">&nbsp; </td><td width="208"> <div align="left">

<input type="submit" name="Submit" value="登录" οnclick="javascript:return(checkform());"> <input type="reset" name="reset" value="重填"> </div></td> </tr> </table> <div align="center"></div>

<div align="center"></div> <div align="center"></div> <div align="center"></div></td></tr> </table> <div align="center"></div></form>

</body></html>

页面运行效果:

4 . 4 . 2 管理密码验证“chklogin.jsp”文件

管理员输入用户名和密码后,单击登陆按钮,提交表单,就会打开“chklogin.jsp”页面。

页面运行效果:

4 . 4 . 3 新闻资讯管理页面“main.jsp”

此页面的功能是管理员可以对小区公告信息进行添加、修改、删除。

页面运行效果:

4 . 4 . 4小区公告信息页面“addxinxi.jsp”

页面运行效果:

4 . 4 . 5 物业信息管理页面“savexinxi.jsp”

这个页面的功能是将添加的信息存入数据库,

页面运行效果:

4 . 4 . 6 小区留言管理功能页面“modifyxinxi.jsp”

此页面功能是对小区留言信息进行修改,

页面运行效果:

4.5 系统[用户注册模块]实现

普通用户进入网站首页后,可以进行小区信息、小区留言等信息的查询游览,用户要想在留言本中留下各种建议或报修等信息就要先进行注册,成为注册用户后可以进行添加留言。用户注册入口在首页,点击注册可进入用户注册页面。

4 . 5 . 1 用户注册页面“register.jsp”

用户进入注册页面“register.jsp”填写注册信息,代码如下:

<%@ page contentType="text/html;charset=gb2312" %><%@ include file="../incoming/common.jsp"%>

<html><head><title>小区信息</title>

<link href="../incoming/style.css" rel="stylesheet" type="text/css">

<script language="javascript">function checkform() {if (form1.userid.value.length<1 || form1.userid.value.length>15){alert("用户名超出了范围(1~15)!");form1.userid.focus();return false;}

if (form1.password.value.length<1 || form1.password.value.length>15){alert("密码超出了范围(1~15)!");form1.password.focus();return false;}if (form1.password.value!=form1.passwordconfirm.value){alert("确认密码不相符!");

form1.passwordconfirm.focus();return false;}return true;}</script>

</head><body><%@ include file="header.jsp"%> <form name="form1" method="post" action="adduser.jsp"> <table width="511" height="322" border="1" cellpadding="0" cellspacing="0"><tr> <td height="320"><p align="center" >&nbsp;</p> <p align="center"><a class="title">用户注册</a></p><table width="90%" height="80%" border="0" cellpadding="1" cellspacing="1"> <tr><td colspan="2" align="center"><b></b></td> </tr> <tr> <td width="171" align="right">用户名:</td><td width="272"><input name="userid" type="text" id="userid" size="15" maxlength="20" > </td> </tr> <tr> <td width="171" align="right">密码:</td><td width="272"><input name="password" type="password" id="password" size="15" maxlength="20"> </td> </tr> <tr>

<td width="171" align="right">确认密码:</td> <td width="272"> <input name="passwordconfirm" type="password" id="passwordconfirm" size="15" maxlength="20"> </td> </tr> <tr> <td width="171" align="right">真实姓名:</td>

<td width="272"><input name="username" type="text" id="username" size="10" maxlength="20"> </td> </tr> <tr><td width="171" align="right">联系地址:</td>

<td width="272"> <input type="text" name="address" maxlength="100" size="50"></td> </tr><tr> <td width="171" align="right">联系电话:</td> <td width="272"> <input type="text" name="phone" maxlength="20" size="16"></td></tr> <tr> <td width="171" align="right">电子邮件:</td> <td width="272"> <input type="text" name="email" maxlength="50" size="25"> </td></tr> <tr> <td width="171" align="right">&nbsp; </td> <td width="272"> <div align="center"> <input type="submit" name="Submit" value="注册" οnclick="javascript:return(checkform());"> <input type="reset" name="reset" value="重填"></div></td> </tr></table><div align="center"></div><div align="center"></div><div align="center"></div></td> </tr> </table></form><%@ include file="incoming/footer.jsp"%></body></html>

页面运行效果:

4 . 5 . 2 用户注册页面“adduser.jsp”

用户填写完信息点击注册会进入“adduser.jsp”页面,“adduser.jsp”功能是将用户注册写如数据库,并给用户注册成功的页面,代码如下:

<%@ page contentType="text/html;charset=gb2312" %><%@ include file="../incoming/common.jsp"%>

<html><head><title>小区信息</title><link href="../incoming/style.css" rel="stylesheet" type="text/css"></head><body><%@ include file="header.jsp"%>

<%String userid = new String(request.getParameter("userid").trim().getBytes("ISO-8859-1"));

String password = new String(request.getParameter("password").trim().getBytes("ISO-8859-1"));

String username = new String(request.getParameter("username").trim().getBytes("ISO-8859-1"));

String address = new String(request.getParameter("address").trim().getBytes("ISO-8859-1"));

String phone = new String(request.getParameter("phone").trim().getBytes("ISO-8859-1"));

String email = new String(request.getParameter("email").trim().getBytes("ISO-8859-1"));

DBSQLManager dbsm = new DBSQLManager();String sql="INSERT INTO userpasswordVALUES('"+userid+"','"+password+"','N','"+username+"','"+address+"','"+phone+"','"+email+"')";dbsm.setSqlStr(sql);dbsm.executeUpdate();dbsm.close(); %><br><a class="title">已经注册成功!请<a href="login.jsp">登录</a></a><br>

<%@ include file="incoming/footer.jsp"%>

</body></html>

页面运行效果:

用户注册成功后即可登陆用户验证页面“login.jsp”进行登陆验证,验证成功后即可进入留言页面“yonghuliuyan.jsp”

4.6 系统其他功能页面实现

对于系统其他页面“xiaoqugonggao.jsp”、“xiaoquliuyan.jsp”、“xinxi.jsp”、“liuyan.jsp”等,其功能实现大致同上,在这里不做重复说明。

第5章 软件的测试

5.1 什么是软件测试

软件测试是在软件投入运行前,对软件需求分析、设计规格说明书和编码的最终的复审,是软件质量保证的关键步骤。确切的说,软件测试就是为了发现错误而执行的过程。一般分为两个阶段:(1)单元测试:在编完一模块后进行测试;(2)综合测试:在开发完软件后进行综合测试。

5.2 软件测试的目标与方法

G.Myers给出了关于测试的一些规则,这些规则可以看作是测试的目标或定义:

(1)测试是为了发现程序中的错误而执行程序的过程;

(2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试;

(3)成功的测试是发现了至今为止尚未发现的错误的测试。

测试任何软件都有两种方法:黑盒测试和白盒测试法。

黑盒测试法(又称功能测试法)是把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程,是在程序接口进行的测试,它只检查程序功能是否按照规格说明书的规定正常使用。

白盒测试法(又称结构测试法)是把程序看成装在一个透明的白盒子里,也就是完全了解程序的结构和处理过程,这种方法按照程序内部的逻辑测试程序,检验程序中的每条通路是否都能按照预定要求正确工作。

通过测试并不能证明程序就是完全正确的,但我们的目的就是要通过测试保证软件的可靠性,因此,必须仔细设计测试方案,力争用最少的测试发现尽可能多的错误。

第6章 总结

经过三个多月的调查、学习、研究和设计,系统的制作接近了尾声。在这里我将系统设计做如下总结。

1)本系统的功能已经达到设计的要求。系统中各个模块的功能均已实现,为整体系统的构建奠定了基础。

2)系统模块的功能可以被进一步扩展。例如,系统中还可以增加个人名片夹等类似的功能。系统的页面可以设计的更加精美。

3)系统中模块划分明确,模块功能设计有较强的针对性。

4)系统的设计遵循软件开发的全过程,使我对软件系统的开发过程有了更深刻的认识。

5)设计体现出了所使用的编程技术的优点,设计中结合了JavaBean。

6)在系统的设计中能够灵活运用JSP的对象技术,并且使用有效的SQL语言操作后台数据库。

软件的设计没有完美无缺的,这个系统在某些地方可能存在不足,还需要我们进一步的改进和完善。

在这段时间里,我获益非浅,不仅将所学的知识运用到实践,而且更进一步学习了软件开发技术,增强了JSP开发技术的语法基础,能够将其比较灵活地使用。以下是我个人制作中得出的一点见解

如果查询语句中有多个Select且嵌套,如

public String getS(Statement stmt,String sql1,String sql2)

{

ResultSet rs=null;

Try

{

rs=stmt.executeQuery(sql1);

while(rs.next())

{

ResultSet rs1=stmt.executeQuery(sql2)

If(rs1.next())

{

String s1=rs.getString(1);

String s2=rs1.getString(1);

..............

}}}

catch(SQLException e){}

return rs;

}

如果如上所述,两个以上的Select 语句使用一个Statment ,那么将出错或者得出的结果不正确。可以使用增加Statement 参数的方法解决,,以实现上述查询功能,但是使用增加Statement 参数的方法毕竟是有局限的,如果嵌套层数增加,Statement 参数也许也得跟着增加,这样对于程序的可扩展是不利的。

另外,在获取表单中值时,经常需要进行字符串转换,否则数据库不能识别,只将字符存储为乱码。有时候还需要设置一个中间变量来传递字符串的转换。

将这个作品投入使用是我们的期望,系统功能会在实践中不断的摸索,达到最佳的使用效果。

第7章 致谢

在本次毕业设计过程中,得到了指导老师的指导与支持。在此特别感谢XX老师的大力帮助。指导老师的悉心指导和大力支持,在总体结构、功能的把握上给予了非常大的帮助,同时根我们提供了非常优越的设计环境,并对我在编程、数据库设计等细节工作上给予了耐心的指导。在此我一并向他表示感谢。我还要感谢我的母校——XXXXXXX大学,以及在大学四年生活中给予我关心和帮助的老师和同学,是他们教会了我专业的知识和做人的道理。通过这次毕业设计我还明白了作为一名计算机专业的大学毕业生,我们要会的不仅仅是编写代码,更重要的是要有整体把握系统设计的能力。我会在以后的工作和学习中不断完善自己,为我最热爱的母校争光,为自己翻开辉煌的新篇章。

转眼间,大学生活即将结束,回首过去四年的大学生活,真是有苦也有乐,然而更多的则是收获,感谢母校的各位老师不但无私地传授给我们知识,也教会了我们如何做人。管理信息系统专业的毕业设计任务繁重,但正是在这几个月紧张而充实的设计中,我感到自己的知识得到了一次升华,我相信:我的毕业设计会给我的四年大学画上一个圆满的句号。
21世纪已经到来了,在新的世纪里,人们自然对未来有许多美好的愿望和设想。现代科学技术的飞速发展,改变了世界,也改变了世界的生活。作为新世纪的大学生,应当站在世界的发展前列,掌握现代科学技术知识,调整自己的知识结构和能力结构,以适应社会发展的要求。新世纪需要具有丰富现代科学知识、能够独立解决面临任务、有创新意识的新型人才。

参考文献:

[1]孙卫琴,李洪成.《Tomcat 与 Java Web 开发技术详解》.电子工业出版社,2003年6月:1-205

[2]BruceEckel.《Java编程思想》. 机械工业出版社,2003年10月:1-378

[3]FLANAGAN.《Java技术手册》. 中国电力出版社,2002年6月:1-465

[4]孙一林,彭波.《Java数据库编程实例》. 清华大学出版社,2002年8月:30-210

[5]LEE ANNE PHILLIPS.《巧学活用HTML4》.电子工业出版社,2004年8月:1-319

[6]飞思科技产品研发中心.《JSP应用开发详解》.电子工业出版社,2003年9月:32-300

[7]耿祥义,张跃平.《JSP实用教程》. 清华大学出版社,2003年5月1日:1-354

[8]孙涌.《现代软件工程》.北京希望电子出版社,2003年8月:1-246

[9]萨师煊,王珊.《数据库系统概论》.高等教育出版社,2002年2月:3-460

[10]Brown等.《JSP编程指南(第二版)》. 电子工业出版社 ,2003年3月:1-268

[11]清宏计算机工作室.《JSP编程技巧》. 机械工业出版社, 2004年5月:1-410

[12]朱红,司光亚.《JSP Web编程指南》.电子工业出版社, 2001年9月:34-307

[13]赛奎春.《JSP工程应用与项目实践》. 机械工业出版社, 2002年8月:23-294

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/61082.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

制作composer包提供sdk扩展

目录 1、初始化包 2、将代码推送到github远程仓库 3、为写好扩展包打上tag标签标记当前代码版本 4、将包发布到包管理平台 初始化包&#xff0c;生成 Creates a basic composer.json file in current directory composer init composer init 按照引导就可以生成了 , 详细的…

Python学习笔记 - 异常处理

前言 为了增强程序的健壮性&#xff0c;计算机程序的编写也需要考虑如何处理一些异常的情况&#xff0c;Python 语言提供了异常处理功能&#xff0c;本博文主要介绍 Python 异常处理机制。 一 异常处理举例 为了学习 Python 异常处理机制&#xff0c;首先看下面进行除法运算的…

MySQL的主从复制与读写分离详解

MySQL的主从复制与读写分离详解读写分离概述什么是读写分离为什么要读写分离什么时候要读写分离MySQL主从复制与读写分离主从复制的概念MySQL支持的复制类型主从复制的工作过程主从复制示例保证MySQL主从服务器时间同步主节点服务器配置从节点服务器设置验证MySQL读写分离MySQL…

Vue3 学习笔记 —— Hooks、全局函数和变量、Vue3 插件

目录 1. Hooks 1.1 Vue2 中的 mixins 1.1.1 mixins 是什么&#xff1f; 1.1.2 mixins 缺点&#xff1f; 1.2 Vue3 中的 Hooks 1.2.1 Vue3 Hooks 是什么&#xff1f; 1.2.2 Vue3 内置 hooks 举例 1.2.3 自定义 Hooks 2. 全局函数和全局变量 2.1 app.config.globalProp…

【深入设计模式】适配器模式—一切皆有可能

文章目录1. 适配器模式1.1 适配器模式简介1.2 适配器模式结构1.3 适配器模式示例2. 适配器模式在源码中的应用3. 总结适配器这个词来源于硬件领域&#xff0c;是一个独立的硬件设备接口&#xff0c;允许硬件或电子接口与其它硬件或电子接口相连&#xff0c;比如常见的电源适配器…

(附源码)SSM芜湖公共书房服务平台 毕业设计 250859

SSM芜湖公共书房服务平台 摘 要 一座有底蕴的城市&#xff0c;应该是一个阅读的城市&#xff1b;一个有魅力的城市&#xff0c;应该是一个散发着书香的城市&#xff0c;而全民阅读量逐年增加&#xff0c;是社会进步、文明程度提高的重要标志。各大城市启动“全民阅读”工作以来…

Redis缓存过期和和内存淘汰策略

目录 1、MaxMemory 2、Expire数据结构 3、删除策略 3.1、惰性删除 3.2、主动删除 3.3、缓存淘汰策略 ​​​​​​​3.4、缓存淘汰策略的选择 1、MaxMemory Redis作为DB使用时&#xff0c;为了保证数据的完整性&#xff0c;不允许淘汰任何键值对。Redis作为缓存使用时&…

汇编语言与微机原理 期末半开卷复习整理(上)

8086CPU寄存器 8086&#xff1a;16位&#xff0c;4.77MHz~10MHz,16根数据线&#xff0c;20根地址线 AX/AL:乘除法指令中用作累加器&#xff0c;IO指令中用作数据寄存器&#xff0c;可显式或隐含调用 AH&#xff1a;在LAHF用作目的寄存器&#xff0c;隐含调用。 AL&#xff1a;…

大数据必学Java基础(一百一十一):过滤器注解应用和开发案例

文章目录 过滤器注解应用和开发案例 一、过滤器注解应用 二、开发案例

Python学习日记-第三十八天-生成器(第二节)

系列文章目录 使用greenlet&#xff0c;gevent完成多任务一、使用greenlet&#xff0c;gevent完成多任务 这里要先在pycharm里面提前安装好greenlet和gevent的包 操作&#xff1a; 代码&#xff1a; from greenlet import greenlet import timedef test1():while True:prin…

Android入门第39天-系统设置Configuration类

简介 本节给大家介绍的Configuration类是用来描述手机设备的配置信息的&#xff0c;比如屏幕方向&#xff0c; 触摸屏的触摸方式等。 Configuration给我们提供的方法列表 densityDpi&#xff1a;屏幕密度fontScale&#xff1a;当前用户设置的字体的缩放因子hardKeyboardHidd…

[深度学习] python基础支持汇总

这个系列放一些看神经网络源码过程中的python语法现象 文章目录前言一、list操作://extends/append的区别1.引入2.细致场景再现前言 例如&#xff1a;这个系列放一些看神经网络源码过程中的python语法现象, 直接解析语法太干瘪无聊.希望用这个方式来巩固所学知识 一、list操作…

电商评论文本情感分类(中文文本分类+中文词云图)(第一部分-textcnn)

电商评论文本情感分类(中文文本分类中文词云图) 第一部分 第二部分Bert部分 本项目包含&#xff1a; 1.中文文本处理 2.中文词云图绘制 3.中文词嵌入 4.基于textcnn的中文文本分类&#xff08;Test_Acc89.2000&#xff09; 5.基于bert的中文文本分类&#xff08;Test_Acc0.…

ServiceComb场景及其原理

文章目录Java-ChassisEnableServiceComb初始化SCBSPIServiceUtils自定义SPI加载器职责链管理器FilterChainsManager/ConsumerHandlerManagerRpcSchema注册服务如何保活&#xff1f;RpcReferencePropertySourcesPlaceholderConfigurerThreadPoolExecutorEx/LinkedBlockingQueueE…

深刻理解JAVA并发中的有序性问题和解决之道

问题 Java并发情况下总是会遇到各种意向不到的问题&#xff0c;比如下面的代码&#xff1a; int num 0;boolean ready false; // 线程1 执行此方法 public void actor1(I_Result r) {if(ready) {r.r1 num num;} else {r.r1 1;} } // 线程2 执行此方法 public void actor…

Clickhouse 使用DBeaver连接

ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)。 据处理大致可以分成两大类&#xff1a;联机事务处理OLTP&#xff08;on-line transaction processing&#xff09;、联机分析处理OLAP&#xff08;On-Line Analytical Processing&#xff09;。 OLTP是传统的…

JavaWeb--JDBC核心技术

JavaWeb--JDBC核心技术JDBC核心技术第1章&#xff1a;JDBC概述1.1 数据的持久化1.2 Java中的数据存储技术1.3 JDBC介绍1.4 JDBC体系结构1.5 JDBC程序编写步骤第2章&#xff1a;获取数据库连接2.1 要素一&#xff1a;Driver接口实现类2.1.1 Driver接口介绍2.1.2 加载与注册JDBC驱…

Redis学习笔记(六)

哨兵 哨兵时一个分布式系统&#xff0c;用于对主从结构中的每台服务器进行监控&#xff0c;当出现故障时通过投票机制选择新的master&#xff0c;并将所有slave连接到新的master哨兵的作用 监控 不断检查master和slave是否正常运行master存活检测、master与slave运行情况检测 通…

Linux调度(三)——抢占式调度

目录 抢占式场景一&#xff1a; 抢占式场景二 抢占的时机 用户态的抢占时机 抢占式机一&#xff1a; 抢占时机二&#xff1a; 内核态的抢占时机 时机一 时机二 总结 之前讲了主动式调度&#xff0c;就是进程运行到一半&#xff0c;因为等待I/O等操作而主动让出CPU&a…

动态规划算法(3)(不同方案数问题+拆分问题)

文章目录不同路径不同路径II整数拆分不同的二叉搜索树动态规划解题五步走&#xff1a; 确定dp数组以及下标的含义确定递推公式dp数组如何初始化确定遍历顺序举例推导dp数组 不同路径 力扣传送门&#xff1a; https://leetcode.cn/problems/unique-paths/description/ 确定dp…