您的当前位置:首页正文

公寓管理系统论文

2024-01-29 来源:客趣旅游网


兰州工业高等专科学校

毕业设计(论文)

题目 学生公寓管理系统

系 别 专 业 班 级 姓 名 学 号 指导教师(职称) 日 期

兰州工业高等专科学校

毕业设计(论文)任务书

系 届 专业

毕业设计(论文)任务书

毕业设计(论文)题目 课题内容性质 课题来源性质 校内(外)指导教师 职 称 学生公寓管理系统 软件开发 学生自立课题 工作单位及部门 设计/论文 联系方式 一、题目说明(目的和意义): 随着网络时代的到来和不断发展,网络管理越来越多普遍,随着学生住宿的需求不同,迫切需要软件对学生公寓进行管理。用来管理学生公寓的系统就是所谓的学生公寓管理系统。 二、设计(论文)要求(工作量、内容): 【设计内容】: 管理员登录系统:由公寓中心管理员,登录后台验证、签退管理。 信息发布系统:是由管理员发布公寓的相关信息和报告。 可在以下内容中进行选择,也可根据实际情况,自选内容,但需事先和指导教师进行沟通。 【设计要求】: 1. 2. 3. 4. 系统能够提供友好的用户界面,使操作人员的心情放松; 系统具有良好的运行效率,能够得到快速发现自我的目的; 系统应有良好的可扩充性,可以容易的转入其它系统应用; 平台的设计具有一定的灵活性。 【实施步骤】: 1. 熟悉JAVA语言jsp、servlet、mysql、MyEclipse、Dreamweaver、photoshop等开发工具(占工作量的5%) 2. 项目环境的搭建(占工作量的15%); 3. 前台页面制作(占工作量的10%); 4. 后台页面制作(占工作量的10%); 5. 项目框架设计(占工作量的15%); 6. 算法的实现(占工作量的30%); 7. 系统调试:各小组进行功能整合,由小到大地调试功能模块,完成整个系统要求。(占工作量的10%)

8. 功能完善和改进:做最后的修缮和调整,使得功能全面、运行流畅、贴近实际运行环境。(占5%) 【毕业论文】: 围绕“公寓管理系统”项目的分析、设计与实现,撰写论文,论文不少于30000字。 论文撰写规范参考附件:兰州工专论文撰写规范(附件一).doc 【提交内容】: “公寓管理系统”项目的可执行文件和源码。 毕业论文的电子稿和打印稿,答辩PPT。 【注意事项】: 毕业设计的时间安排根据时间表,最后一周,检查程序、交毕业设计论文;交毕业设计系统Powerpoint电子显示文稿;按要求将毕业设计论文装订成册。 指导老师打分方案:毕业设计成绩=考勤*30%+论文*40%+技术实现*30%。 每周考勤一次,有特殊情况需向指导教师请假。 具体论文上交时间、论文答辩时间以系办通知为准。 三、进度表 日 期 第15周 内 容 查阅文献,分析功能,确定基本思路和设计内容,确定需求分析。 开发环境的搭建; 设计页面; 接口和类的定义; 数据库设计; 完成系统前台页面编码; 完成系统后台的设计; 完成前后台的对接; 完成系统,做功能修缮和调整,编写用户手册。 按要求完成论文,并上交论文,制作电子文档,为答辩做准备。 2012年1月 2012年3月 第16周 第17周 第18周 第19周 第20周 完成日期 答辩日期 四、主要参考文献、资料、设备和实习地点及翻译工作量: 【设备】:实践基地资源、个人设备资源及实习地点的设备资源,按照设计要求进行配置和安装。 【设计环境】: 软件:Windows XP,JDK6.0以上版本,Eclipse5.0以上版本。 硬件:以软件安装要求为准则,在设计的过程中确保程序调试的流畅。 【实习地点】:计算机实践基地、学生选定的调式地点与学生自己考察的外部地点相结合。 【翻译工作量】:对论文标题、关键字、摘要进行英文翻译。 【参考文献】: [1] 张明新,周耿烈.Java语言程序设计. 重庆:重庆大学出版社,2004.

[2] 周晓聪,李文军,李师贤.面向对象程序设计与Java语言. 北京:机械工业出版社,2004. [3] Bruce Eckel.Java编程思想.北京:机械工业出版社,2007. [4] James Cohoon,Jack Davidson.Java程序设计. 北京:清华大学出版社,2005. [5] Steven Holzner.Java技术内幕. 北京:机械工业出版社,2002. [6] 张洪斌.Java程序设计百事通. 北京:清华大学出版社,2001. [7] 夏先波.Java JDK实例宝典. 北京:电子工业出版社,2007. [8] 吴其庆.Java程序设计经典教程. 北京:冶金工业出版社,2005. [9] 耿祥义,张跃平.Java 2 实用教程. 北京:清华大学出版社,2007. [10] 蔡勇,姜磊,马宁,倪文志.Java 2 程序设计基础教程与上机指导. 北京:清华大学出版社,2005. [11] 林建素,孟康健.《Eclipse开发学习笔记》(第1版).北京:电子工业出版社. 2008.4 [12] 李松林,陈华清,任鑫.《Eclipse宝典》(第1版).北京:电子工业出版社. 2007.9 指导教师签字 年 月 日 教研室主任签字 年 月 日 主管系领导签字 年 月 日 注:本任务书要求一式两份,一份系部留存,一份报教务处实践教学

兰州工业高等专科学校毕业论文

摘 要

以往的学生公寓管理基本上还处于人工操作的阶段,随着计算机技术和网络技术的日益广泛应用,彩计算机以及网络来管理学生公寓,有着很好的前景。学生公寓管理系统基于B/S模式开发,使用JSP动态网页制作技术作为主要的前台开发语言实现前后台的数据交互;后台选用MYSQL作为数据库服务器。该学生公寓管理系统主要有公寓中心、公寓文化、公寓制度、楼管会,宿舍打分几部分内容。

整个系统采用MVC三层架构,并在MVC的基础上扩展了SERVICE层和DAO层。对于像密码这类较为敏感的信息进行MD5加密,从而使网站的安全性更高。

关键字:B/S;MYSQL;MVC;SERVICE;DAO;MD5;

I

兰州工业高等专科学校毕业论文

Abstract

Students in the past is still in the apartment management is basically manual operation of the stage, along with computer technology and network technology is increasingly widely used, color computer and network to manage student apartments, with good prospects. Students' apartments management system based on B/S model development, use the JSP dynamic web pages as the main production technology of the front desk development language realization of front desk and backstage data interaction; MYSQL backend choose as a database server. The students' apartments management system mainly have apartment center, apartment culture, apartment system, building tube, scoring a few part of dormitory.

Three-tier system using MVC and MVC based on the expansion of the SERVICE layer and DAO layer. Such as passwords for more sensitive information MD5 encryption, so that the site security.

Keyword: B/S; MYSQL; MVC; SERVICE; DAO; MD5

II

兰州工业高等专科学校毕业论文

目录

摘 要 .......................................................................................................................................................................... I Abstract ...................................................................................................................................................................... II 1. 绪论 ................................................................................................................................................................... 1

1.1 课题研究的目的及意义 ........................................................................................................................... 1 1.2 国内外研究动态 ....................................................................................................................................... 1 1.3 本文的工作 ............................................................................................................................................... 2 2. 系统分析 ........................................................................................................................................................... 3

2.1 可行性分析 ............................................................................................................................................... 3

2.1.1 社会可行性 ................................................................................................................................... 3 2.1.2 技术可行性 ................................................................................................................................... 3 2.1.3 经济可行性 ................................................................................................................................... 3 2.2 需求分析 ................................................................................................................................................... 3 2.3 开发工具及相关技术简介 ....................................................................................................................... 4

2.3.1 相关工具简介 ............................................................................................................................... 4 2.3.2 相关技术概述 ............................................................................................................................... 4 2.4 系统的数据流图 ....................................................................................................................................... 4 3. 系统设计 ........................................................................................................................................................... 6

3.1 功能分析 ................................................................................................................................................... 6 3.2 安全设计 ................................................................................................................................................... 6 3.3 模块设计 ................................................................................................................................................... 7 4. 系统编码 ........................................................................................................................................................... 8

4.1 新闻发布 ................................................................................................................................................... 8 4.2 前台显示模块 ..........................................................................................................................................11 4.3 后台显示模块 ....................................................................................................................................... 13

4.3.1 验证信息 ..................................................................................................................................... 13 4.3.2 DAO层模块 .................................................................................................................................. 18

5. 软件测试与运行 ............................................................................................................................................. 22

5.1 系统测试 ................................................................................................................................................. 22 5.2 系统调试 ................................................................................................................................................. 22 5.3 运行环境 ................................................................................................................................................. 22 6 结论 ................................................................................................................................................................... 23 致 谢 ....................................................................................................................................................................... 24 参考文献 ................................................................................................................................................................. 25

III

兰州工业高等专科学校毕业论文

1. 绪论

1.1 课题研究的目的及意义

设计的首要目的是运用已经学习到的java语言和SQL Server数据库知识自主实现一个实用的系统,使得现有知识得到更好的巩固,更加熟练。同时在实现中学习到更多新的知识,能更深入掌握JSP、Java语言,了解软件开发的全过程,为以后的学习与工作打下坚实的基础。

1.2 国内外研究动态

进入二十一世纪,计算机技术迅速向着网络化、集成化方向发展。传统的单机版应用软件正在逐渐退出舞台,取而代之的是支持网络、支持多种数据信息(多媒体)的新一代网络版应用软件,而目前网络版软件中似乎存在着两种不同的趋势,一种是称为客户端——服务器的C/S结构应用系统,这类软件具有结构严谨,运行效率高,服务器端压力小,安全性好等优点,被广泛运用于局域网中。而另一种,也是本毕业设计所采用的,是称为浏览器——服务器的B/S结构应用系统,它的特点是在客户端直接采用了功能强大的浏览器软件作为界面,其优点在于软件开发效率高,客户端不受操作平台的限制、也不受地域的限制,网络传输量少,即适用于局域网,更适用于Internet,而且投资小、见效快,用户可以不必进行服务器方面的投资,而是去租用,甚至是免费使用ISP的服务器资源,因而受到越来越多中小型单位的青睐。

Internet起源于20世纪60年代末、70年代初,当时,美国国防部为了将充斥于军事基地内各种厂商的电脑主机互连,让它们可以进行数据交换以便研究工作顺利进行,于是成立了ARPA网络计划。ARPA计划尝试建设一个网络系统,它可将各种不同厂商的电脑连接起来。随着这个计划的成功,各学术单位,研究机构也纷纷与ARPA计划所建立的ARPANet连接。到了20世纪80年代,Internet这个名词因势产生,它代表着这十年来所构建涵盖全球各地的网络系统。从1990年起,商业使用的Internet在美国急速地扩大,而Internet也从原来属于少数人使用的网络系统转变为普通百姓也能够使用的网络系统。

最初的Internet资源服务都还停留在文本模式,1989年,量子物理实验室(CERN)下的一个研究小组着手开发一种全新的Internet服务,它可以在网络上传送图片、文本、影像、声音等多媒体数据。于是由Tim Berners Lee领导的小组开发出了一种主从、分布式的网络服务系统,这就是WWW(World Wide Web),俗称“万维网”。

所谓WWW其实就是连上Web服务器访问资源,取得的内容就是所谓的“主页”(HomePage)。进入的网页通常不会只有一页,而是整个网站的内容。

“网站”是一种呈现在网络上的新兴媒体,通过Internet已经成为一个实时的,多媒体的信息传播渠道。它的载体主要是电脑,范围覆盖全球各地,没有国界,不分人种,时时刻刻地提供服务。目前,人们渐渐开始把网站称之为广播、电视、报刊以外的第四新闻媒体,以“共享、公平、公正、创新、国际化、团队精神”为特征的网络文明也已逐渐成为这个时代的标志,人们越来越习惯于通过Internet网络获取信息,通过Internet在网站上发表自己对社会对生活的理解和建议。

随着网络的普及,论坛的内容越来越丰富,论坛也由此深受广大网民的喜爱,因此商

1

兰州工业高等专科学校毕业论文

业网站对论坛也重视起来,提供与网民交流的平台,同时在线技术支持也在论坛中开展起来。

1.3 本文的工作

C/S结构,即Client/Server(客户机/服务器)结构,是大家熟知的软件系统体系结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,可以充分利用两端硬件环境的优势。早期的软件系统多以此作为首选设计标准。

B/S结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓N-Tier结构。B/S结构,主要是利用了不断成熟的WWW浏览器技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。随着Windows将浏览器技术植入操作系统内部,这种结构更成为当今应用软件的首选体系结构。

论文设计开发的系统为通用BBS系统,系统应该具备较大的可伸缩性,应该能适应最基本应用最广泛的Web平台。另外,通用系统应该具备较大的可扩展性,而Java 语言是面向对象的,面向对象编程注重程序的可扩展性,且Java 语言是跨平台执行的,JSP相对其他网页编程语言有更多的优点,所以本系统采用Java+JSP作为编程语言。

2

兰州工业高等专科学校毕业论文

2. 系统分析

2.1 可行性分析

商业软件是根据客户的根本目的和需要而设计和开发的,可行性是开发的系统具有使用价值和生命力的保证。

2.1.1 社会可行性

当前社会是一个网络化的社会,网络就在人们周围,人们从网络上获取并发布信息,而本系统正是应这一需求而产生,为企业,个人发布,获取有价值的信息提供场所。所以本系统具有社会可行性。

2.1.2 技术可行性

本系统采用java语言,用MySQL数据库作为后台数据库,安装和使用简单易学,方便操作;前台页面采用JSP动态页面,JSP相比ASP、PHP都有很大的优势;服务器采用Tomcat服务器,它是一个开源软件。开发人员在学习了这些语言或工具之后,有能力开发本系统。

2.1.3 经济可行性

经济可行性是指软件所带来的经济效益与开发设计所需要的投资费用相比较是否适当,软件是否会给使用者带来经济效益。首先随着计算机软件和硬件技术的飞速发展,计算机软、硬件价格不断下降,设计本系统所投入的资金下降。与使用本系统为企业发布、获取信息所节省的价值相比,应用本系统带来的收益较大,经济效益可观,所以在经济上是可行的。

2.2 需求分析

本系统的用户是学生公寓管理人员,他们的日常公寓管理工作主要有:入住学生信息的查询与管理、寝室分配及调整

来访登记等。根据上述需求进行分析,本系统在实现上具有如下功能:

学生基本信息管理,包括学生姓名、学号、所属院系班级、公寓楼号、寝室号等数据 需求分析虽处于软件开发过程的开始阶段,但它对于整个软件开发过程以及软件产品质量是至关重要的。随着软件系统复杂性的提高及规模的扩大,需求分析在软件开发中所处的地位愈加突出。所谓需求,是指用户对目标软件系统在功能、行为、性能设计约束等方面的要求。在需求分析工作中,系统分析人员对用户的需求进行调查和分析,确定现有环境的特征,正确定义目标软件的特征 。因此,需求分析工作是对应用环境及其问题进行理解和分析,为问题涉及的信息、功能及系统行为建立模型,将用户需求精确化。

公寓中心管理系统设计实现以下功能:

管理员中心:管理员对系统进行一些基本的维护,包括对公寓信息的发布、修改和删除。

3

兰州工业高等专科学校毕业论文

2.3 开发工具及相关技术简介

本系统采用的工具有JDK 1.6、Tomcat 6.0、MyEclipse 8.6、MySQL,使用的技术有Java、JSP、、JDBC等。

2.3.1 相关工具简介

(1) JDK 1.6.0

JDK是Sun 公司Java应用程序和组件的开发环境,是编译和测试工具,也是提供java程序的Java虚拟机平台,是调试和运行JSP所不可缺少的工具。本系统采用JDK1.6.0版本。

(2) Tomcat 6.0

Tomcat是开源的servlet和JSP容器(Sun官方推荐容器),它是Jakarta项目中一个重要的组成,由Apache、Sun和其他一些公司及个人开发。Tomcat内部实现了Servlet和JSP引擎,而且扩展了一些应用服务器的功能,例如JNDI、数据库连接池、用户事务处理等。目Tomcat被广泛地应用于中小规模的Java web应用中[4]。 (3) MyEclipse 8.6

MyEclipse是在Eclipse集成开发环境中提供Web应用程序开发的插件,在目前软件开发的Java领域中,MyEclipse是一个使用非常广泛的工具。

MyEclipse是Eclipse软件的一个插件,Eclipse软件是免费的,但MyEclipse不是一个完全免费的产品,需要购买。

(4) MySQL MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型 网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。

与其他的大型数据库例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之处,如规模小、功能有限(MySQL不支持视图(已经被列入5.1版的开发计划)、事件等)等,但是这丝毫 也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大 降低总体拥有成本。

2.3.2 相关技术概述

1. Java语言概述

Java编程语言是一种通用、并发、基于类且面向对象的语言。Java编程语言与C和C++相关,但是在组织方式上有差别,Java具有C和C++遗漏的许多优点,同时兼有其他语言包括的一些思想。它旨在成为一种生产语言,而不是一种研究语言,并且正是如此。 2. JSP技术概述

JSP (Java Server Pages)是由Sun 公司倡导,许多公司参与,共同建立人一种动态网页技术标准,JSP技术是在Servlet技术基础上发展起来的。它正在飞速发展中,现在已经成为Java服务器编程的重要组成部分。

2.4 系统的数据流图

数据流图即DFD(Data Flow Diagram)图。是用于分析系统数据流程的图形,意在让用户理解系统的功能、输入、输出和数据存储等。公寓中心管理系统的第一层数据流图如图

4

兰州工业高等专科学校毕业论文

2-4-01所示,描述系统由哪几部分组成,各部分之间有什么联系。

普通用查看户 登录信息发布公寓管信息查看管理理中员心信息删除退出图2-4-01

5

兰州工业高等专科学校毕业论文

3. 系统设计

3.1 功能分析

公寓中心管理系统分为前台和后台两个模块。系统的功能模块图如图3-1所示。

公寓系统功能模块 前台显示模块 后台管理模块 管理员显示界面用户登录界面管理员登录 信息发布 信息查询 信息删除 退 出 前台模块的使用对象包括了所有用户(管理员、用户),提供的功能是浏览信息。 后台模块的使用对象为管理人员,提供的功能包括管理员登录、信息发布、信息查询、信息删除,退出。

3.2 安全设计

当我们设计一个网站或者软件程序的时候,经常都需要在数据库中存放一些用户的密码信息,我们一般将密码直接保存在数据库中,并没有进行任何的保密措施,对于一些文件型数据库比如Access等, 如果有人得到这个文件,数据库将发生泄漏危险。而且,如果碰到一个不负责任的网管,只要打开数据库文件,就可以查看网站中的密码,这样密码就不能得到保密了。所以,为了增加安全性,我们有必要对数据库中的资料进行加密,这样,即使有人得到了整个数据库,如果没有解密算法,也一样不能查看到数据库中的用户信息。现在很多网站和软件程序都是采用MD5加密。

我们都知道,加密一般有分成两种方式:双向密码和单向加密。双向加密码是最常用的,平时我们用FTP上传下载,用的是明文传输。这是很不安全的,所以,网上交易需要把密码进行加密后传到服务器端再用相应的算法进行解密,这样就算半途被拦截了数据,也是看不懂的密文。这种既能加密又能解密的方法就叫双向加密。单向加密只能对数据进行加密,不能对其解密,MD5加密方式正是单向加密。

在java程序设计中,实现MD5加密是很简单的,首先需要下载一个MD5.java。把

6

图 3-1 系统功能模块图

兰州工业高等专科学校毕业论文

MD5.java放在自己的工程目录中,然后在需要加密的程序中导入 ,这样就可以在action中使用MD5这个函数进行加密了。比如另一个页面提交了表单,加密页面要把它存入数据库,放在数据库里面的密码是不可解密的,虽然不能解密,但由于算法得出的结果是不变的,也就是123经过加密后永远是ac59075b964b0715,所以由于合法用户知道密码,他就可以在登陆的时候输入123,程序再进行MD5加密,然后把加密之后的数字ac59075b964b0715跟数据库比较,这显然是相等的,所以就通过验证了。就如今年发生的csdn数据库泄漏事件,就是因为密码以明文的形式进行存储所造成的,虽然在请求时以post方式请求,可以隐藏用户信息,但数据库中的信息以明文存储任然是非常的危险。

3.3 模块设计

模块设计过程是软件工程开发过程中的一个阶段也叫详细设计,这是系统设计阶段的后续开发阶段。在系统设计阶段要把整个应用问题分解成一些相对独立的功能组,每一组功能的程序代码独立存放,叫做程序一个模块。

模块,就是可复制、可拆分开来能够重复利用的单元,在电脑程序编制这种模块叫做模块设计。在学生公寓系统中,从用户的角度来分可以分为决普通用户和管理员,而管理员模块中又可以分为管理员登录和信息发布模块。

信息发布模块主要是公寓管理中心对外时进行信息发布,如:新闻发布、通知公告、公寓文化、楼栋管理等。

7

兰州工业高等专科学校毕业论文

4. 系统编码

4.1 新闻发布

系统采用JDBC架构,数据库采用MySQL。根据项目需求抽象出DAO层,专门负责与数据库交互,从而降低系统的耦合度,其关键代码如下:

package apartment.dao;

import java.sql.Connection;

import java.sql.PreparedStatement; import java.sql.ResultSet;

import java.sql.SQLException; import java.util.ArrayList; import java.util.List;

import apartment.model.News;

import apartment.tools.DataAccessObject;

public class NewsDAO implements InterfaceNews{ Connection con = null; public boolean deleteNews(int id) throws Exception { // TODO Auto-generated method stub con = DataAccessObject.getConnection(); PreparedStatement pst = null; String sql = \"delete from news where id =\" +id; try{ pst = con.prepareStatement(sql); if(pst.executeUpdate() > 0){ return true; }else{ return false; } }catch(SQLException e){ e.printStackTrace(); }finally{ pst.close(); } return false; }

8

兰州工业高等专科学校毕业论文

public boolean insertNews(News news) throws Exception { // TODO Auto-generated method stub con = DataAccessObject.getConnection(); PreparedStatement pst = null; String sql = \"insert into news (title,content,count,user) values (?,?,?,?)\"; try{ pst = con.prepareStatement(sql); pst.setString(1, news.getTitle()); pst.setString(2, news.getContent()); pst.setInt(3, 0); pst.setString(4, news.getUser()); if(pst.executeUpdate() > 0){ return true; }else{ return false; } }catch(SQLException e){ e.printStackTrace(); } finally{ pst.close(); } return false; }

public List queryNews() throws Exception { // TODO Auto-generated method stub con = DataAccessObject.getConnection(); PreparedStatement pst = null; ResultSet rs = null; String sql = \"select * from news ORDER BY time desc\"; List allNews = new ArrayList(); try{ pst = con.prepareStatement(sql); rs = pst.executeQuery(); if(rs != null){ allNews = getPreporty(rs); return allNews; } }catch(SQLException e){ e.printStackTrace(); } finally{ pst.close();

9

兰州工业高等专科学校毕业论文

}

rs.close(); }

return null;

public News queryNewsById(int id) throws Exception { // TODO Auto-generated method stub con = DataAccessObject.getConnection(); PreparedStatement pst = null; ResultSet rs = null; String updateCountSql = \"update news set count=count+1 where id=\" + id; String sql = \"select * from news where id =\" + id; News news = new News(); try{ pst = con.prepareStatement(updateCountSql); if(pst.executeUpdate() > 0){ pst.close(); pst = con.prepareStatement(sql); rs = pst.executeQuery(); if(rs.next()){ news.setId(rs.getInt(\"id\")); news.setTitle(rs.getString(\"title\")); news.setContent(rs.getString(\"content\")); news.setCount(rs.getInt(\"count\")); news.setTime(rs.getString(\"time\")); news.setUser(rs.getString(\"user\")); return news; } } }catch(Exception e){ e.printStackTrace(); }finally{ pst.close(); rs.close(); } return null; }

private List getPreporty(ResultSet rs){ List allNews = new ArrayList(); try{ while(rs.next()){ News news = new News(); news.setId(rs.getInt(\"id\"));

10

兰州工业高等专科学校毕业论文

}

}

news.setTitle(rs.getString(\"title\")); news.setContent(rs.getString(\"content\")); news.setCount(rs.getInt(\"count\")); news.setTime(rs.getString(\"time\")); news.setUser(rs.getString(\"user\")); allNews.add(news); } return allNews;

}catch(SQLException e){ e.printStackTrace(); }

return allNews;

使用注入Dao的形式进行数据库操作,在Dao中实现对数据表的增加、删除、查询、修改操作。

4.2 前台显示模块

前台显示模块包括用户的一些功能,具体的可分为登录、发布,查看和删除等功能。现将部分功能说明如下:

新闻发布模块:管理员发布相关信息。

<%@ page language=\"java\" import=\"java.util.*\" pageEncoding=\"utf-8\"%> <%

String path = request.getContextPath(); String basePath =

request.getScheme()+\"://\"+request.getServerName()+\":\"+request.getServerPort()+path+\"/\";

%>

\">

My JSP 'publishnews.jsp' starting page

11

兰州工业高等专科学校毕业论文

新闻标题:
新闻内容:


新闻发布人:
  

12

兰州工业高等专科学校毕业论文

图4-2-01

4.3 后台显示模块

4.3.1 验证信息

用户在账号登录的前提下,可以在信息发布页面进行各种信息的发布,系统将相关信息提交给Servlet进行身份验,具体代码如下所示。

package apartment.servlet;

import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.List;

import javax.servlet.ServletException; import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;

import apartment.model.Admin; import apartment.model.News;

import apartment.service.InterfaceNewsService; import apartment.service.NewsService;

public class NewsServlet extends HttpServlet {

13

兰州工业高等专科学校毕业论文

private static final long serialVersionUID = 1L; public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {

this.doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {

request.setCharacterEncoding(\"utf-8\"); response.setCharacterEncoding(\"utf-8\"); String action = request.getParameter(\"action\"); if(\"insertNews\".equals(action)){ this.insertNews(request, response); }else if(\"queryNews\".equals(action)){ this.queryNews(request, response); }else if(\"queryNewsById\".equals(action)){ this.queryNewsById(request, response); }else if(\"deleteNews\".equals(action)){ this.deleteNews(request, response); } } public void insertNews(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {

request.setCharacterEncoding(\"utf-8\"); response.setCharacterEncoding(\"utf-8\"); String message = \"\"; String path = \"/admin/message.jsp\"; String title = request.getParameter(\"title\"); String content = request.getParameter(\"content1\"); String user = request.getParameter(\"user\"); Admin admin = (Admin)request.getSession(false).getAttribute(\"admin\"); if(admin == null){ message += \"对不起,您还没有登录!\"; path = \"/admin/message.jsp\"; request.setAttribute(\"message\ }else{ if(title == \"\" || content == \"\" || user == \"\"){ if(title == \"\"){ message += \"对不起,新闻标题不能为空!\"; } if(content == \"\"){ message += \"对不起,新闻内容不能为空!\"; }

14

兰州工业高等专科学校毕业论文

if(user == \"\"){ message += \"对不起,新闻发布人不能为空!\"; } path = \"/admin/message.jsp\"; request.setAttribute(\"message\ }else{ News news = new News(); news.setTitle(title); news.setContent(content); news.setUser(user); InterfaceNewsService service = new NewsService(); try{ if(service.insertNews(news)){ path = \"publishnews.jsp\"; }else{ path = \"/admin/message.jsp\"; request.setAttribute(\"message\对不起,服务器暂时有误,请您与管理员联系!\");

} }catch(Exception e){ e.printStackTrace(); message += \"对不起,服务器暂时有误,请你与管理员联系!\"; path = \"/admin/message.jsp\"; request.setAttribute(\"message\ } } } request.getRequestDispatcher(path).forward(request, response); } public void queryNews(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {

request.setCharacterEncoding(\"utf-8\"); response.setCharacterEncoding(\"utf-8\"); String message = \"\"; String path = \"/message.jsp\"; List allNews = new ArrayList(); InterfaceNewsService service = new NewsService(); //声明session以便判断角色 Admin admin = (Admin) request.getSession(false).getAttribute(\"admin\"); try{ allNews = service.queryNews(); if(allNews != null){

15

兰州工业高等专科学校毕业论文

//判断是用户查询跳转到\"/users/showplan.jsp\"页面,否则就跳转到\"/admin/showplan.jsp\"页面

if(admin == null){ path = \"/users/shownews.jsp\"; request.setAttribute(\"allNews\ }else{ path = \"/admin/shownews.jsp\"; request.setAttribute(\"allNews\ } }else{ //判断是用户查询跳转到\"/users/showplan.jsp\"页面,否则就跳转到\"/admin/showplan.jsp\"页面

if(admin == null){ message += \"对不起,服务器暂时有误,请您与管理员联系!\"; path = \"/message.jsp\"; request.setAttribute(\"message\ }else{ message += \"对不起,服务器暂时有误,请您与管理员联系!\"; path = \"/admin/message.jsp\"; request.setAttribute(\"message\ } } }catch(Exception e){ e.printStackTrace(); //判断是用户查询跳转到\"/users/showplan.jsp\"页面,否则就跳转到\"/admin/showplan.jsp\"页面

if(admin == null){ message += \"对不起,服务器暂时有误,请您与管理员联系!\"; path = \"/message.jsp\"; request.setAttribute(\"message\ }else{ message += \"对不起,服务器暂时有误,请您与管理员联系!\"; path = \"/admin/message.jsp\"; request.setAttribute(\"message\ } } request.getRequestDispatcher(path).forward(request, response); } public void queryNewsById(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {

request.setCharacterEncoding(\"utf-8\");

16

兰州工业高等专科学校毕业论文

response.setCharacterEncoding(\"utf-8\"); String message = \"\"; String path = \"/message.jsp\"; int id = Integer.parseInt(request.getParameter(\"id\")); InterfaceNewsService service = new NewsService(); try{ News news = new News(); news = service.queryNewsById(id); if(news != null){ path = \"/users/news.jsp\"; request.setAttribute(\"news\ }else{ message += \"对不起,当前服务器有误,请您与管理员联系!\"; path = \"/message.jsp\"; request.setAttribute(\"message\ } }catch(Exception e){ e.printStackTrace(); path = \"/message.jsp\"; request.setAttribute(\"message\对不起,当前服务器有误,请您与管理员联系!\"); } request.getRequestDispatcher(path).forward(request, response); } public void deleteNews(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {

request.setCharacterEncoding(\"utf-8\"); response.setCharacterEncoding(\"utf-8\"); String message = \"\"; String path = \"/admin/message.jsp\"; PrintWriter out = response.getWriter(); int id = Integer.parseInt(request.getParameter(\"id\")); Admin admin = (Admin) request.getSession(false).getAttribute(\"admin\"); try{ if(admin != null){ InterfaceNewsService service = new NewsService(); if(service.deleteNews(id)){ out.print(\"新闻删除成功!\"); // path = \"/admin/shownews.jsp\"; /*----- 功能不完善,跳转后\"admin/shownews.jsp\"页面不显示内容 -----*/ }else{ message += \"对不起,服务器暂时有误,请您与管理员联系!\";

17

兰州工业高等专科学校毕业论文

}

}

path = \"/admin/message.jsp\"; request.setAttribute(\"message\ } }else{ message += \"对不起,因为安全原因请您重新登录!\"; path = \"/login.jsp\"; request.setAttribute(\"message\ }

}catch(Exception e){ e.printStackTrace(); message += \"对不起,服务器暂时有误,请您与管理员联系!\"; path = \"/admin/message.jsp\"; request.setAttribute(\"message\}

request.getRequestDispatcher(path).forward(request, response);

4.3.2 DAO层模块

发布信息后点击提交按键后交给NewServlet处理调用DAO提交到数据库中,具体代码如

下:

package apartment.dao;

import java.sql.Connection;

import java.sql.PreparedStatement; import java.sql.ResultSet;

import java.sql.SQLException; import java.util.ArrayList; import java.util.List;

import apartment.model.News;

import apartment.tools.DataAccessObject;

public class NewsDAO implements InterfaceNews{ Connection con = null; public boolean deleteNews(int id) throws Exception { // TODO Auto-generated method stub con = DataAccessObject.getConnection(); PreparedStatement pst = null; String sql = \"delete from news where id =\" +id; try{ pst = con.prepareStatement(sql);

18

兰州工业高等专科学校毕业论文

}

if(pst.executeUpdate() > 0){ return true; }else{ return false; }

}catch(SQLException e){ e.printStackTrace(); }finally{ pst.close(); }

return false;

public boolean insertNews(News news) throws Exception { // TODO Auto-generated method stub con = DataAccessObject.getConnection(); PreparedStatement pst = null; String sql = \"insert into news (title,content,count,user) values (?,?,?,?)\"; try{ pst = con.prepareStatement(sql); pst.setString(1, news.getTitle()); pst.setString(2, news.getContent()); pst.setInt(3, 0); pst.setString(4, news.getUser()); if(pst.executeUpdate() > 0){ return true; }else{ return false; } }catch(SQLException e){ e.printStackTrace(); } finally{ pst.close(); } return false; }

public List queryNews() throws Exception { // TODO Auto-generated method stub con = DataAccessObject.getConnection(); PreparedStatement pst = null; ResultSet rs = null; String sql = \"select * from news ORDER BY time desc\";

19

兰州工业高等专科学校毕业论文

}

List allNews = new ArrayList(); try{ pst = con.prepareStatement(sql); rs = pst.executeQuery(); if(rs != null){ allNews = getPreporty(rs); return allNews; }

}catch(SQLException e){ e.printStackTrace(); }

finally{ pst.close(); rs.close(); }

return null;

public News queryNewsById(int id) throws Exception { // TODO Auto-generated method stub con = DataAccessObject.getConnection(); PreparedStatement pst = null; ResultSet rs = null; String updateCountSql = \"update news set count=count+1 where id=\" + id; String sql = \"select * from news where id =\" + id; News news = new News(); try{ pst = con.prepareStatement(updateCountSql); if(pst.executeUpdate() > 0){ pst.close(); pst = con.prepareStatement(sql); rs = pst.executeQuery(); if(rs.next()){ news.setId(rs.getInt(\"id\")); news.setTitle(rs.getString(\"title\")); news.setContent(rs.getString(\"content\")); news.setCount(rs.getInt(\"count\")); news.setTime(rs.getString(\"time\")); news.setUser(rs.getString(\"user\")); return news; } } }catch(Exception e){ e.printStackTrace();

20

兰州工业高等专科学校毕业论文

}

}finally{ pst.close(); rs.close(); } return null; }

private List getPreporty(ResultSet rs){ List allNews = new ArrayList(); try{ while(rs.next()){ News news = new News(); news.setId(rs.getInt(\"id\")); news.setTitle(rs.getString(\"title\")); news.setContent(rs.getString(\"content\")); news.setCount(rs.getInt(\"count\")); news.setTime(rs.getString(\"time\")); news.setUser(rs.getString(\"user\")); allNews.add(news); } return allNews; }catch(SQLException e){ e.printStackTrace(); } return allNews; }

21

兰州工业高等专科学校毕业论文

5. 软件测试与运行

5.1 系统测试

软件测试的目的在于在软件投入运行之前,尽可能多地发现软件中的错误,软件测试是对软件规格说明、设计和编码的最后复审,是软件质量的保证的关键步骤。

系统测试一般分为模块测试、组装测试、确认测试。确认测试是软件需求说明书上的功能进行逐项检验,模块测试是查找各模块在功能结构上存在的问题。本系统采用模块测试,对系统的每个功能进行测试。

5.2 系统调试

通过测试后,发现用户注册的功能不能对输入的信息进行校验,对输入的数据没有进行校验,通过查找源代码,发现是函数没有写对。

另外还发现了其他一些错误,经过使用打印语句输出数据处理结果的方法,也都找出了错误所在。

5.3 运行环境

软件环境:

操作系统是Windows XP,Windows 7、Linux或以上版本;数据库使用MySQL5.1或以上版本,JDK1.6或以上版本,Tomcat6.0或以上版本。IE版本为IE6.0

硬件环境:

内存至少为128MHZ;CPU要求为Intel Pentium 800MHZ或以上更高频率的CPU。 安装路径:

安装好MySQL5.1数据库后,将MySQL5.1数据库备份文件导入MySQL5.1中,安装JDK后安装Tomcat,将工程文件gongy包放在Tomcat的根目录下的webapp文件夹下,打开Tomcat服务器,在浏览器窗口输入http://localhost:8080/gongy进入系统主页面。

22

兰州工业高等专科学校毕业论文

6 结论

通过开发一个基本的基于Web的公寓管理中心系统,可扩展性很大,科学的开发过程也极有利于系统的扩充与扩展。系统现在采用的是MySQL5.1数据库。系统的分析与定义都结合了现在流行的面向对象方法以及传统的MVC结构分析与设计方法。

通过这次毕业设计,我从中学到了许多新的知识,而且通过这次毕业设计,培养了我综合多门学科中的知识、迅速规划并开发出目标系统的能力,以及编程能力也有了很大的提高。另外也有许多心得体会,所谓系统开发如人生百味,酸甜苦辣皆有之。

严格按工程的方法来设计系统相当重要,不能认为基于Web的数据库管理的公寓管理中心系统很小,可以无需花太多的时间来做系统分析,甚至可以无需经过系统定义而直接进入系统编码阶段。系统分析过于简单,系统定义过于抽象,则在系统设计与编码阶段遇到的困难就越多,特别是其中若不得不做一些功能性甚至系统结构性方面的变动,将面对许多重复性的工作。在设计开发公寓管理中心系统过程中重复工作过多,将会极大地影响系统开发的积极性,进而影响整个系统的质量。在这一点上,我体会尤深。我的体会是,系统分析越充分,系统定义越具体,那么后续的系统设计与开发工作就越有效率,且系统的质量也越有保障。

由于时间关系,公寓管理中心系统还有信息修改,不同的查询方式等几个功能没有实现,但其实现思路已经有了,只要修改Dao层的SQL语句并在相应的JSP上添加相应的模块即可。

23

兰州工业高等专科学校毕业论文

致 谢

首先要感谢的是我的指导老师,在论文的选题和细节工作上都给了我莫大的帮助与鼓励,论文是在指导老师的精心指导下完成的,无论在理论上还是在实践中,她都给予我很大的帮助。从论文的选题到最后的审稿,始终得到了老师的关心和支持。在老师的亲切关怀和细心指导下顺利完成了论文。她严肃的科学态度,严谨的治学态度,精益求精的工作作风,深深地感染着和激励着我。在此谨向指导老师致真诚的谢意和崇高的敬意。

另外,我要向系里的领导、老师和系里的所有授课老师表示深深的感谢。感谢在一起愉快的度过大学生活的各位同学、朋友,正是由于你们的帮助和支持,我才能克服每一个困难和疑惑,直至本文的顺利完成。感谢父母和家人对我无微不至的关心和爱护,在本次论文中也给了我极大的鼓励。

最后,在论文即将完成之际,感谢所有支持过、帮助过我的人,再次献上我最忠心的感谢与祝福!

24

兰州工业高等专科学校毕业论文

参考文献

[1]邓良松,刘海岩,陆丽娜.软件工程[M].西安:电子科技大学出版社.2004,27 [2]赵光.JSP+Oracle数据库组建动态网站经典实例[M].北京:电子工业出版社.2005,80 [3]程志艳,张亮,马建红.JSP实用简明教程[M].北京:清华大学出版社.2005,70 [4]叶达峰.Eclipse编程技术与实例[M].北京:人民邮电出版社.2006,134

[5]张桂元,贾燕枫,姜波.征服Ajax Web 2.0快速入门与项目实践(Java)[M].北京:人民邮电出版社.2006,21

[6]王晓悦.精通Java-JDK、数据库系统开发、web开发[M].北京:人民邮电出版社.2007,388 [7] James Gosling, Bill Joy,Guy Steele et al.The Java Language Specifictation[M]. Addison-Wesley .2006,1

[8] Y.Daniel Liang.Introduction to Java programming comprehensive version[M].Upper Saddle River: N.J. Prentice Hall.2006,135

[9]葛蒙,程显峰.JavaScript实践与提高[M] .北京:中国电力出版社.2002,1

[10]曾春平,王超,张鹏.XML编程从入门到精通[M] .北京:北京希望电子出版社.2002,1 [11]Ted Husted.Struts in Action.United States of America[M].Manning Publication Co.2003,14~15

[12]王占全,苏玲.Eclipse全程指南[M] .北京:电子工业出版社.2006,297~298 [13]刘乃丽.精通JavaEE项目案例[M].北京:人民邮电出版社.2008,239~241 [14]王少锋.面向对象技术UML教程[M].北京:清华大学出版社.2004 21~36 [15]阎菲.实用软件工程教程[M].北京:中国水利水电出版社.2006,150

25

兰州工业高等专科学校

毕业设计(论文)评语

题目

专业: 班级: 姓名: 指导教师评语: 指导教师(签名) 年 月 日 答辩教师评语: 答辩委员会(分组)负责人(签名) 年 月 日

因篇幅问题不能全部显示,请点此查看更多更全内容