房屋出租管理系统 精品.doc_第1页
房屋出租管理系统 精品.doc_第2页
房屋出租管理系统 精品.doc_第3页
房屋出租管理系统 精品.doc_第4页
房屋出租管理系统 精品.doc_第5页
已阅读5页,还剩28页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于B/S结构的房屋出租管理系统第1章 绪论 1.1 课题研究的背景介绍 随着社会经济的发展,城市现代化建设步伐不断加快,城市规模不断扩大,人员的流动也不断加大,房屋出租逐渐成为社会生活的重要组成部分。无论是房屋出租还是房屋求租,都面临着大量需求。说到房屋出租,我们首先想到的就是房屋中介,但是不论对于房屋出租者还是对于求租者来说,要面对的问题实在让人头疼,首先是琳琅满目的中介公司让人感到无从选择,在要顾及中介单位可信度的同时,大量复杂的房产信息使他们感到迷茫,难以快速、准确地从中找到适合自己的房屋信息。再者,出租、承租双方进行交易的时候还要通过中介,使交易过程更加繁琐。而且中介单位还要收取的一定比例的中介费用,这也在一定程度上加重了房屋承租者的负担。因此,现实社会中急需一个第三者为房屋出租者与房屋求租者牵线搭桥,来弥补中介单位的种种不足。在互联网蓬勃发展的今天,网络和我们的生活、工作越来越密不可分,网络正领导着一个新时代的来临。于是我们就利用开放的Internet技术,开发出实时、快捷、全方位传播信息的平台,我们制作的房屋出租管理系统的网站,就成了人们关于生活中住房问题的信息载体,使得房屋信息在出租者与求租者之间传播更为轻松。这样,使原本复杂的房屋信息简单化,系统能及时为他们提供服务,使出租求租双方都能够方便快捷的得到信息。通过本系统来管理房屋出租情况,可以解决大量房屋信息的查询和管理,便于房屋出租者更好的发布其房屋信息,同时也为租房者提供方便。并且能够培养我们的综合分析设计能力,同时提高动手实践的能力。1.2系统开发环境及开发平台介绍1.2.1 系统开发环境1.硬件环境(1) CPU:Duo T5600 1.83GHz;(2) 内存:512MB以上;(3) 硬盘:100G.。2.软件环境(1) 操作系统:Windows XP;(2) 数据库:SQL Server 2000;(3) 开发工具包:JDK1.5.0;(4) JSP服务器:Tomcat6.0;(5) 浏览器:IE 7.0。1.2.2 系统开发平台简介1.系统开发平台本系统开发语言选用Java,JSP,所以采用MyEclipse,Tomcat为主要开发工具,然后结合Dreamweaver,SQL Server 2000数据库管理系统与Windows XP操作系统进行。既考虑了系统的需求,又兼顾了运行的效率,以及今后系统的功能拓展等。2.Tomcat简介如今,基于Web的应用越来越多,传统的已经满足不了如今的需求。我们需要一个交互式的Web,于是便诞生了各种Web语言。如Asp,Jsp,Php等。当然,这些语言与传统的语言有着密切的联系,如Php基于C和C+语言,Jsp基于Java语言。Tomcat即是一个Jsp和Servlet的运行平台。Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其它一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和Jsp规范总能在Tomcat中得到体现。Tomcat被JavaWorld杂志的编辑选为20XX年度最具创新的java产品,可见其在业界的地位。在Tomcat中,应用程序的部署很简单,你只需将你的WAR放到Tomcat的webapp目录下,Tomcat会自动检测到这个文件,并将其解压。你在浏览器中访问这个应用的Jsp时,通常第一次会很慢,因为Tomcat要将Jsp转化为Servlet文件,然后编译。编译以后,访问将会很快。另外Tomcat也提供了一个应用:manager,访问这个应用需要用户名和密码,用户名和密码存储在一个xml文件中。通过这个应用,辅助于Ftp,你可以在远程通过Web部署和撤销应用。当然本地也可以。Tomcat有三种工作模式,分别是独立的Servlet容器、进程内的Servlet容器和进程外的Servlet容器。在利用其进行开发之前必须要清楚Tomcat的目录结构。因为它的目录结构和Web系统的创建和发布都有着很大的关系,通常,Tomcat的目录结构如下表:表1-1 Tomcat的目录结构目录描述/bin存放启动和关闭Tomcat的各种脚本文件/conf存放Tomcat服务器的各种配置文件/server/lib包含了3个子目录:即classes、lib、webapps;/server/webapps存放Tomcat服务器所需要的各种JAR文件/mon/lib存放Tomcat自带的两个Web应用:admin应用和manager应用/Shared/lib存放Tomcat服务器及所有Web应用都可以访问的JAR文件l/ogs存在所有Web应用都可以访问的JAR文件/webapps当发布Web应用时,默认情况下把Web应用放在此目录下/workTomcat把JSP生成的Servlet放在此目录下Tomcat不仅仅是一个Servlet容器,它也具有传统的Web服务器的功能:处理页面。但是与Apache相比,它的处理静态的能力就不如Apache.我们可以将Tomcat和Apache集成到一块,让Apache处理静态,而Tomcat处理Jsp和Servlet.这种集成只需要修改一下Apache和Tomcat的配置文件即可。基于Tomcat的开发其实主要是Jsp和Servlet的开发,开发Jsp和Servlet非常简单,你可以用普通的文本编辑器或者IDE,然后将其打包成WAR即可。我们这里要提到另外一个工具Ant,Ant也是Jakarta中的一个子项目,它所实现的功能类似于Unix中的make.你需要写一个build.xml文件,然后运行Ant就可以完成xml文件中定义的工作,这个工具对于一个大的应用来说非常好,我们只需在xml中写很少的东西就可以将其编译并打包成WAR.事实上,在很多应用服务器的发布中都包含了Ant.另外,在Jsp1.2中,可以利用标签库实现Java代码与文件的分离,使Jsp的维护更方便。Tomcat确实是一个很好的工具,不仅仅因为其免费,功能强大,更因为其开放性。如今,开源软件越来越收到人们的重视,Linux就是一个成功的典型。3.MyEclipse简介MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对Eclipse IDE的扩展,利用它我们可以在数据库和J2EE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持, Struts, JSF, CSS, Javascript, SQL, Hibernate。简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的J2EE集成开发环境,支持代码编写、配置、测试以及除错。Genuitec发布了MyEclipse Enterprise Workbench 5.0,更智能、更快捷、更简单和更便宜的J2EE工具的新版本的诞生。它的价格对于个人和企业开发人员来说都是非常有吸引力的。这是J2EE IDE市场一个重量级的选手。通过增加UML双向建模工具、WYSIWYG的JSP/Strutsdesigner、可视化的Hibernate/ORM工具、Spring和Web services支持,以及新的Oracle数据库开发,MyEclipse 5.0继续为业界提供全面的产品。第2章 系统开发技术介绍2.1 系统的B/S结构2.1.1 B/S结构简介B/S结构:(Browser/Server,浏览器/服务器模式):是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。 客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器安装Oracle、Sybase、Informix或 SQL Server等数据库。B/S模式体系结构的原理如图2-1所示,浏览器通过Web Server 同数据库进行数据交互。Web浏览器Web服务器应用服务器HTTP请求界面结果SQL请求数据库服务器图2-1 B/S模式体系结构原理图B/S最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件。只要有一台能上网的电脑就能使用,客户端零维护。系统的扩展非常容易。B/S结构的使用越来越多,特别是由需求推动了AJAX技术的发展,它的程序也能在客户端电脑上进行部分处理,从而大大的减轻了服务器的负担;并增加了交互性,能进行局部实时刷新。2.1.2 B/S架构软件的优势与劣势维护和升级方式简单。目前,软件系统的改进和升级越来越频繁,B/S架构的产品明显体现着更为方便的特性。对一个稍微大一点单位来说,系统管理人员如果需要在几百甚至上千部电脑之间来回奔跑,效率和工作量是可想而知的,但B/S架构的软件只需要管理服务器就行了,所有的客户端只是浏览器,根本不需要做任何的维护。无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只需要针对服务器进行;如果是异地,只需要把服务器连接专网即可,实现远程维护、升级和共享。所以客户机越来越“瘦”,而服务器越来越“胖”是将来信息化发展的主流方向。今后,软件升级和维护会越来越容易,而使用起来会越来越简单,这对用户人力、物力、时间、费用的节省是显而易见的,惊人的。因此,维护和升级革命的方式是“瘦”客户机,“胖”服务器。成本降低,选择更多。大家都知道windows在桌面电脑上几乎一统天下,浏览器成为了标准配置,但在服务器操作系统上windows并不是处于绝对的统治地位。 现在的趋势是凡使用B/S架构的应用管理软件,只需安装在Linux服务器上即可,而且安全性高。所以服务器操作系统的选择是很多的,不管选用那种操作系统都可以让大部分人使用windows作为桌面操作系统电脑不受影响,这就使的最流行免费的Linux操作系统快速发展起来,Linux除了操作系统是免费的以外,连数据库也是免费的,这种选择非常盛行。比如说很多人每天上“新浪”网,只要安装了浏览器就可以了,并不需要了解“新浪”的服务器用的是什么操作系统,而事实上大部分网站确实没有使用windows操作系统,但用户的电脑本身安装的大部分是windows操作系统。应用服务器运行数据负荷较重。由于B/S架构管理软件只安装在服务器端上,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器端完全通过浏览器实现,极少部分事务逻辑在前端实现,所有的客户端只有浏览器,网络管理人员只需要做硬件维护。但是,应用服务器运行数据负荷较重,一旦发生服务器“崩溃”等问题,后果不堪设想。因此,许多单位都备有数据库存储服务器,以防万一。2.1.3 B/S框架与C/S框架的联系与区别C/S是Client/Server的缩写。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、 Informix或 SQL Server。客户端需要安装专用的客户端软件。B/S是Brower/Server的缩写,客户机上只要安装一个浏览器(Browser),如Internet Explorer,服务器安装Oracle、Sybase、Informix或 SQL Server等数据库。在这种结构下,用户界面完全通过浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现。浏览器通过Web Server 同数据库进行数据交互。C/S 与 B/S 区别:(1) 硬件环境不同C/S 一般建立在专用的网络上,小范围里的网络环境,局域网之间再通过专门服务器提供连接和数据交换服务。B/S 建立在广域网之上的,不必是专门的网络硬件环境,例如电话上网,租用设备,信息自己管理。有比C/S更强的适应范围,一般只要有操作系统和浏览器就行。(2) 对安全要求不同C/S 一般面向相对固定的用户群,对信息安全的控制能力很强。一般高度机密的信息系统采用C/S 结构适宜。可以通过B/S发布部分可公开信息。B/S 建立在广域网之上,对安全的控制能力相对弱,可能面向不可知的用户。(3) 对程序架构不同C/S 程序可以更加注重流程,可以对权限多层次校验,对系统运行速度可以较少考虑。B/S 对安全以及访问速度的多重的考虑,建立在需要更加优化的基础之上。比C/S有更高的要求 B/S结构的程序架构是发展的趋势,从MS的.Net系列的BizTalk 2000 Exchange 2000等,全面支持网络的构件搭建的系统. SUN 和IBM推的JavaBean构件技术等,使 B/S更加成熟。(4) 软件重用不同C/S 程序可以不可避免的整体性考虑,构件的重用性不如在B/S要求下的构件的重用性好。B/S 面对的多重结构,要求构件相对独立的功能,能够相对较好的重用,就如买来的餐桌可以再利用,而不是做在墙上的石头桌子。(5) 系统维护不同C/S 程序由于整体性,必须整体考察,处理出现的问题以及系统升级。升级难,可能要再做一个全新的系统。B/S 构件组成,方面构件个别的更换,实现系统的无缝升级。系统维护开销减到最小,用户从网上自己下载安装就可以实现升级。(6) 处理问题不同C/S 程序可以处理用户面固定,并且在相同区域,安全要求高需求,与操作系统相关,应该都是相同的系统。B/S 建立在广域网上,面向不同的用户群,分散地域,这是C/S无法作到的. 与操作系统平台关系最小。(7) 用户接口不同C/S 多是建立的Window平台上,表现方法有限,对程序员普遍要求较高。B/S 建立在浏览器上,有更加丰富和生动的表现方式与用户交流。并且大部分难度减低,减低开发成本。(8) 信息流不同C/S 程序一般是典型的中央集权的机械式处理,交互性相对低。B/S 信息流向可变化, B-B B-C B-G等信息、流向的变化,更像交易中心。2.2 JSP技术概述2.2.1 JSP简介JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种技术标准。JSP技术有点类似技术,它是在传统的网页文件(*.,*.)中插入程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。 用JSP开发的Web应用是跨平台的,即能在Linux下运行,也能在其他操作系统上运行。JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的代码一起返回给客户。插入的Java程序段可以操作、重新定向网页等,以实现建立动态网页所需要的功能。JSP与Java 一样,是在服务器端执行的,通常返回该客户端的就是一个文本,因此客户端只要有浏览器就能浏览。JSP页面由代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的页面返回给客户端的浏览器。Java Servlet 是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的,具有平台无关性且安全可靠,主要面向的所有特点。2.2.2 JSP技术的强势与弱势分析1.JSP技术的强势(1)一次编写,到处运行。在这一点上Java比更出色,除了系统之外,代码不用做任何更改。(2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP/PHP的局限性是显而易见的。 (3)强大的可伸缩性。从只有一个小的文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。(4)多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。2.JSP技术的弱势(1) 与ASP一样,Java的一些优势正是它致命的问题所在。正是由于为了跨平台的功能,为了极度的伸缩能力,所以极大的增加了产品的复杂性。(2) Java的运行速度是用class常驻内存来完成的,所以它在一些情况下所使用的内存比起用户数量来说确实是“最低性能价格比”了。从另一方面,它还需要硬盘空间来储存一系列的.java文件和.class文件,以及对应的版本文件。2.2.3 JSP动态网站开发技术太阳微系统公司(Sun Microsystems Inc.)在Web服务器、应用服务器、交易系统以及开发工具供应商间广泛支持与合作下,整合并平衡了已经存在的对Java编程环境(例如Java Servlets和JavaBeans)进行支持的技术和工具后产生了一种新的、开发基于Web应用程序的方法Java Server Pages技术(JSP)。这种动态网站开发技术的特点是:能够在任何Web或应用程序服务器上运行;分离了应用程序的逻辑和页面显示; 能够进行快速的开发和测试; 简化了开发基于Web的交互式应用程序的过程。 为了快速方便地进行动态网站的开发,JSP在以下几个方面做了改进,使其成为快速建立跨平台的动态网站的首选方案。 (1) 将内容的生成和显示进行分离 用JSP技术,Web页面开发人员可以使用或者XML标识来设计和格式化最终页面,并使用JSP标识或者小脚本来生成页面上的动态内容(内容是根据请求变化的,例如请求账户信息或者特定的一瓶酒的价格等)。生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在脚本中,所有的脚本在服务器端运行。由于核心逻辑被封装在标识和JavaBeans中,所以Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。 在服务器端,JSP引擎解释JSP标识和脚本,生成所请求的内容(例如,通过访问JavaBeans组件,使用JDBC技术访问数据库或者包含文件),并且将结果以(或者XML)页面的形式发送回浏览器。这既有助于作者保护自己的代码,又能保证任何基于的Web浏览器的完全可用性。 (2) 可重用组件 绝大多数JSP页面依赖于可重用的、跨平台的组件(JavaBeans或者Enterprise JavaBeans组件)来执行应用程序所要求的复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者和客户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。 (3) 采用标识 Web页面开发人员不会都是熟悉脚本语言的编程人员。JSP技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。标准的JSP标识能够访问和实例化JavaBeans组件,设置或者检索组件属性,下载Applet,以及执行用其他方法更难于编码和耗时的功能。 (4) 适应平台 几乎所有平台都支持Java,JSPJavaBeans几乎可以在所有平台下通行无阻。从一个平台移植到另外一个平台,JSP和JavaBeans甚至不用重新编译,因为Java字节码都是标准的与平台无关的。(5) 数据库连接 Java中连接数据库的技术是JDBC,Java程序通过JDBC驱动程序与数据库相连,执行查询、提取数据等操作。Sun公司还开发了JDBCODBC bridge,利用此技术Java程序可以访问带有ODBC驱动程序的数据库,目前大多数数据库系统都带有ODBC驱动程序,所以Java程序能访问诸如Oracle、Sybase、MS SQL Server和MS Access等数据库。此外,通过开发标识库,JSP技术可以进一步扩展。第三方开发人员和其他人员可以为常用功能创建自己的标识库。这使得Web页面开发人员能够使用熟悉的工具和如同标识一样的执行特定功能的构件来进行工作。 JSP技术很容易整合到多种应用体系结构中,以利用现存的工具和技巧,并且能扩展到支持企业级的分布式应用中。作为采用Java技术家族的一部分,以及Java 2(企业版体系结构)的一个组成部分,JSP技术能够支持高度复杂的基于Web的应用。 由于JSP页面的内置脚本语言是基于Java的,而且所有的JSP页面都被编译成为Java Servlets,所以JSP页面具有Java技术的所有好处,包括健壮的存储管理和安全性。作为Java平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点。利用JSP技术,动态信息由JSP页面来表现,JSP页面由安装在Web服务器或者使用JSP的应用服务器上的JSP引擎执行。JSP引擎接受客户端对JSP页面的请求,并且生成JSP页面作为对客户端的响应。JSP页面通常被编译成为Java Servlets,这是一个标准的Java扩展。页面开发人员能够访问全部的Java应用环境,以利用Java技术的扩展性和可移植性。当JSP页面第一次被调用时,如果它还不存在,就会被编译成为一个Java Servlets类,并且存储在服务器的内存中。这就使得在接下来的对该页面的调用中,服务器会有非常快的响应(这避免了CGIBIN为每个HTTP请求生成一个新的进程的问题)。JSP页面可以包含在多种不同的应用体系结构或者模型中,可以用于由不同协议、组件和格式所组成的联合体中。基于JSP的动态信息发布技术是一个开放的、可扩展的建立动态Web页面的标准。不论采用什么创建工具,开发人员都可以使用JSP页面来创建可移植的Web应用,在不同的Web应用服务器上运行。2.3 MVC及Struts介绍2.3.1 MVC介绍是Model-View-Controller的缩写,中文翻译为-控制器。即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层模型层、视图层、控制层。视图(View)代表用户交互界面,对于Web应用来说,可以概括为界面,但有可能为X、和。随着应用的复杂性和规模性,界面的处理也变得具有挑战性。一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。业务流程的处理交予模型(Model)处理。比如一个订单的视图只接受来自模型的数据并显示给用户,以及将用户界面的输入数据和请求传递给控制和模型。 模型(Model):就是业务流程/状态的处理以及业务规则的制定。业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计可以说是MVC最主要的核心。目前流行的EJB模型就是一个典型的应子,它从应用技术实现的角度对模型做了进一步的划分,以便充分利用现有的,但它不能作为应用的框架。它仅仅告诉你按这种模型设计就可以利用某些技术组件,从而减少了技术上的困难。对一个开发者来说,就可以专注于业务模型的设计。MVC设计模式告诉我们,把应用的模型按一定的规则抽取出来,抽取的层次很重要,这也是判断开发人员是否优秀的设计依据。抽象与具体不能隔得太远,也不能太近。MVC并没有提供模型的设计方法,而只告诉你应该组织管理这些模型,以便于模型的和提高重用性。我们可以用编程来做比喻,MVC定义了一个顶级类,告诉它的子类你只能做这些,但没法限制你能做这些。这点对编程的开发人员非常重要。 业务模型还有一个很重要的模型那就是数据模型。数据模型主要指实体对象的数据 保存(持续化)。比如将一张订单保存到,从数据库获取订单。我们可以将这个模型单独列出,所有有关数据库的操作只限制在该模型中。 控制(Controller)可以理解为从用户接收请求, 将模型与视图匹配在一起,共同完成用户的请求。划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层并不做任何的数据处理。例如,用户点击一个连接,控制层接受请求后, 并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。因此,一个模型可能对应多个视图,一个视图可能对应多个模型。模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。如果用户通过某个视图的控制器改变了模型的数据,所有其它依赖于这些数据的视图都应反映到这些变化。因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图,导致显示的更新。这实际上是一种模型的变化-传播机制。模型、视图、控制器三者之间的关系和各自的主要功能,如图2-2所示。模型封装应用程序状态响应状态查询应用程序功能通知视图改变视图解释模型模型更新请求发送用户输入给控制器允许控制器选择试图控制器定义应用程序行为用户动作映射成模型更新选择响应的视图 视图选择用户请求状态改变状态查询通知改变方法调用事件图2-2 MVC组件类型的关系和功能2.3.2 Struts介绍Struts是Apache 基金会Jakarta 项目组的一个Open Source 项目,它采用MVC模式,能够很好地帮助java 开发者利用J2EE开发Web应用。和其他的java架构一样,Struts 也是面向对象设计,将MVC模式分离显示逻辑和业务逻辑的能力发挥得淋漓尽致。Struts框架的核心是一个弹性的控制层,基于如 Java Servlet ,JavaBeans,Resource Bundles与XML等标准技术,以及 Jakarta mons 的一些类库。Struts有一组相互协作的类(组件)、Serlvet以及jsp tag lib组成。基于Struts构架的Web应用程序基本上符合JSP Model2的设计标准,可以说是一个传统 MVC设计模式的一种变化类型。Struts这个名字来源于在建筑和旧式飞机中使用的支持金属架。它的目的是为了减少在运用MVC设计模型来开发Web应用的时间。Struts跟Tomcat、Turbine等诸多Apache项目一样,是开源软件,这是它的一大优点,使开发者能更深入的了解其内部实现机制。除此之外,Struts的优点主要集中体现在两个方面:Taglib和页面导航。Taglib是Struts的标记库,灵活动用,能大大提高开发效率。另外,就目前国内的JSP开发者而言,除了使用JSP自带的常用标记外,很少开发自己的标记,或许Struts是一个很好的起点。第3章 系统分析3.1任务描述为了实现网络化、科学化、现代化的房屋出租管理,使用 JSP、Servlet和JavaBean及数据库技术相结合,编写一个B/S结构的房屋出租管理系统。系统的总体设计应该是提供给上网浏览者一个高效率,能进行丰富的网上活动的网站,为网站用户提供及时发布、查询房屋租赁信息的平台。系统目标如下:1应用网络的优势,开发房屋出租信息网站,方便房屋出租者与房屋求租者交流,可以使双方都能了解彼此需求之后再进行交易,从而达到房屋信息被准确利用的目的。2网站用户能够在网站首页及时浏览房屋信息,并可以随时注册账号,登录网站发布个人房屋信息。3网站有新闻公告模块,除了房屋信息,用户可以浏览、阅读本站公告和时事新闻。4管理员控制网站中对所有用户的各项信息管理,可以随时查看用户的个人信息及房屋信息,监督并防止用户录入非法信息。5如果网站用户对本网站有意见和建议,可以随时给网站管理员发送E-mail进行联系。3.2用UML用例图描述系统需求3.2.1用例图简介用例图用来描述系统与参与者之间的相互作用,也可以说它是从用户角度出发对如何使用系统的描述。首先要理清下面几个概念:角色:角色代表了某一事件发生的参与者,他用一个小人表示。在通常的网络项目中,角色常被用来代表使用网站的用户(管理员、用户等),但角色的作用并不局限于此,它也可以用来代表与系统交互的其他实体。用例:用例代表系统可以实现的功能,通常一个用例代表一组功能,它实质上规定了系统实现功能的范围。在实际项目开发过程中,一个项目中往往涉及很多个用例,此时需要将其分解成若干个子系统实现,以便于理解。在UML中,用例用一个椭圆表示。用例图:当角色与用例发生某种关系时,就可以用一个图将它们关联起来,这就是用例图,角色与用例之间使用一个带箭头的实线连接,箭头方向代表使用者与被使用者关系。3.2.2系统用例分析房屋出租管理系统网站允许用户有两种身份:普通用户和管理员,每种身份操作起来都很方便、快捷。任何普通用户可以浏览、查看房屋租赁信息,但是如果想要发布个人的房屋租赁信息,这必须是经过注册、登录以后的用户。这些用户的基本信息都有管理员对其统一管理。系统网站用例图如图3-1所示。注册修改个人信息发布房屋信息删除房屋信息浏览新闻公告普通用户管理用户信息管理房屋信息管理新闻公告管理员图3-1 系统用例图3.3功能分析根据前面对房屋出租管理系统的分析,可将其划分成前台和后台两部分。前台功能主要为网站普通用户提供,后台功能为管理员提供。软件的主要模块和功能如下:前台功能:1普通用户模块:浏览、搜索房屋信息,浏览网站新闻公告。2注册会员模块:浏览、搜索、发布、修改和删除房屋信息,修改个人密码信息,浏览网站新闻公告。后台功能:1房屋管理:能查看房屋信息发布详细情况,并可作出删除管理。2注册会员管理:查看网站系统注册会员,并可作出删除管理。3新闻公告管理:添加、修改、浏览、删除公告。注 册登 录普通用户个人信息管理浏览功能身份验证房屋信息管理修改个人信息发布房屋信息删除房屋信息查看房屋信息查看新闻公告修改房屋信息图3-2前台功能结构图登 录管理员用户信息管理新闻公告管理身份验证房屋信息管理查看用户信息查看房屋信息删除房屋信息发布新闻公告删除新闻公告删除用户信息查看新闻公告图3-3 后台功能结构图第4章 系统的设计与实现4.1数据库的设计与实现4.1.1数据库SQL Server 2000简介Microsoft SQL Server是一种典型的关系型数据库管理系统,可以在许多操作系统上运行,它使用Transact-SQL语言完成数据操作。由于Microsoft SQL Server是开放式的系统,其它系统可以与它进行完好的交互操作。本系统采用的数据库版本为Microsoft SQL Server 2000,它具有可靠性、可伸缩性、可用性、可管理性等特点,为用户提供完整的数据库解决方案。美国Microsoft公司推出的这种关系型数据库系统。Microsoft SQL Server是一个可扩展的、高性能的、为分布式客户机/服务器计算所设计的数据库管理系统,实现了与Windows NT的有机结合,提供了基于事务的企业级信息销售管理系统方案。其主要特点如下: (1) 在企业管理器中有图形化界面,方便使用,可充分利用Windows NT的优势。(2) 系统管理先进,支持本地的系统管理和配置。(3) 强大的事务处理功能,采用各种方法保证数据的完整性。(4) 支持对称多处理器结构、存储过程、ODBC,并具有自主的SQL语言。Microsoft SQL Server以其内置强大的管理工具、与Internet的紧密集成和开放的系统结构为广大的用户、开发人员和系统集成商提供了一个出众的数据库平台。SQL全称是“结构化查询语言(Structured Query Language)”,它的前身是SQUARE语言。SQL语言结构简洁,功能强大,简单易学,所以自从推出以来,SQL语言得到了广泛的应用。目前,SQL语言已被确定为关系数据库系统的国际标准,被绝大多数商业化关系数据库系统采用,如Oracle 、Sybase、DB2、Informix、SQL Server这些数据库管理系统都支持SQL语言作为查询语言。结构化查询语言SQL是一种介于关系代数与关系演算之间的语言,其功能包括查询、操纵、定义和控制四个方面,是一个通用的功能极强的关系数据库标准语言。SQL语言有着非常突出的优点,主要是:1非过程化语言SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集。所有SQL 语句接受集合作为输入,返回集合作为输出。SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。 SQL不要求用户指定对数据的存放方法。 这种特性使用户更易集中精力于要得到的结果。所有SQL语句使用查询优化器,它是RDBMS的一部分,由它决定对指定数据存取的最快速度的手段。查询优化器知道存在什么索引,哪儿使用合适,而用户从不需要知道表是否有索引,表有什么类型的索引。 2统一的语言SQL可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、 应用程序员、决策支持系统人员及许多其它类型的终端用户。基本的SQL 命令只需很少时间就能学会,最高级的命令在几天内便可掌握。 SQL为许多任务提供了命令,包括:(1) 查询数据。(2) 在表中插入、修改和删除记录。(3) 建立、修改和删除数据对象。(4) 控制对数据和数据对象的存取。(5) 保证数据库一致性和完整性。以前的数据库管理系统为上述各类操作提供单独的语言,而SQL 将全部任务统一在一种语言中。3是所有关系数据库的公共语言。SQL是所有关系数据库的公共语言 由于所有主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL的技能从一个RDBMS转到另一个。所有用SQL编写的程序都是可以移植的。4.1.2数据库结构设计将数据库概念结构转化为Microsoft SQL Server 2000系统所支持的实际数据模型,也就是数据库的逻辑结构,系统数据库名称为fangwu,数据库fangwu中包含用户信息,房屋出租、求租信息,合租房屋信息,新闻公告信息。通过对系统进行仔细分析以后,需要4个数据表来实现系统所要储存的数据。表4-1用户信息表 (users)字段名称数据类型长度备注idbigint8Primary, Not Nulluseridvarchar20Not Nullpasswordvarchar20Not Null表4-2房屋出租、求租信息表 (house)字段名称数据类型长度备注idbigint8Primary, Not Nullbiaotivarchar4000Not Nulljushivarchar100Not Nulljiageint4Not Nullmianjiint4Not Nullmiaoshuvarchar4000Not Nullshijianvarchar20Not Nullpersonvarchar100Not Nullphonevarchar20Not Nulltypevarchar100Not Nullhostidvarchar20Not Null表4-3房屋合租信息表 (house2)字段名称数据类型长度备注idbigint8Primary, Not Nullbiaotivarchar4000Not Nullfangwuvarchar200Not Nullxianzhivarchar200Not Nullmianjiint4Not Nulljiageint4Not Nulldianhuavarchar20Not Nullpersonvarchar100Not Nullmiaoshuvarchar4000Not Nullhostidvarchar100Not Nullshijianvarchar20Not Null表4-4新闻公告信息表 (gonggao)字段名称数据类型长度备注idbigint8Primary, Not Nulltitlevarchar4000Not Nullcontentvarchar8000Not Nullshijianvarchar22Not Null4.2.3数据库加载和调试数据库事实阶段包括两项重要的工作,一项是数据的加载,另外一项是应用程序的编码和调试。加载测试工作贯穿于程序测试工作的全过程,整个录入、修改、查询、处理工作均可视为对数据库的加载测试工作。一般数据库中,数据量都很很大,而且数据来源于部门中的各个不同的单位,数据的组织方式、结构和格式都与新设计的数据库系统有相当的差距,组织数据录入就要将各类数据从各个局部应用中抽取出来,输入计算机,再分类转换,最后综合成符号新设计的数据库结构的形式,输入数据库,因此这样的数据转换、组织入库的工作是相当费力费时的工作10。特别是原系统是手工数据系统时,各类数据分散在各种不同原始表格、凭证、单句之中。在向新的数据库系统中输入数据时,还要处理大量的纸质文件,工作量就更大。由于各个不同的应用环境差异很大,不可能有通用的转换器,DBMS产品也不提供通用的转换工具。为提高数据输入工作的效率和质量,应该针对具体的应用环境设计一个数据录入子系统,由计算机来完成数据入库的任务。由于要入库的数据在原来的系统中的格式与新系统中不完全一样,有的差别可能还比较大,不仅向计算机内输入数据时容易发生错误,转换过程中也有可能出错。因此在原数据入库之前要采用多种方法对它们进行检验,以防止不正确的数据入库,这部分的工作在整个数据输入子系统中是非常重要的。在设计数据输入子系统时还要注意原有系统的特点,例如对原有系统是人工数据处理系统的情况,尽管新系统的数据结构可能与原系统有很大差别,在设计数据输入子系统时,尽量让输入格式与原系统结构相似,这不仅使处理手工文件比较方便,更重要的是减少用户出错的可能性,保证数据输入的质量。数据库应用程序的实际应该与数据库设计同时进行,因此在组织数据入库的同时还要进行应用程序的调试和分析。4.2.4操作数据库在执行查询动作之前,必须在程序中使用Connection对象的createStatement方法,建立Statement对象,以代表执行的SQL语句。 连接驱动,用户登录数据库 Class.forName(.microsoft.jdbc.sqlserver.SQLServerDriver); String url=jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=edu; String user=sa; /sa为数据库用户名。 String password=sa; /数据库密码sa。 Connection conn=DriverManager.getConnection(url, user, password); 建立Statement对象 Statement stmt=conn.createStatement(); 执行查询动作,并将查询结果以Resultset对象返回。 Resultset rs = stmt.executeQuery(select * from house); 取得字段数据。使用ResultSet类的get方法,可以从ResultSet对象中,取得当前记录中各个字段的数据。 4.2功能模块的设计与实现4.2.1系统注册模块用户如果想要注册,则按要求输入信息,包括用户名,密码,确认密码,验证码。系统处理过程为:系统根据用户的输入信息,首先查询数据库,查询出数据库里的所有的用户的信息,若是有重名的,则告之“对不起!该用户已经被注册!”,若是查询没有重名的,则告之“恭喜您!该用户还未被注册!”而且验证用户输入的数据全部都是合法的数据,则调用用户注册信息的插入模块把用户的注册信息插入到数据库中。此时页面提示注册成功,返回首页。图4-1用户注册界面图4-2注册成功界面4.2.2系统登录模块用户输入用户名和密码,系统根据用户输入的用户名字和用户的密码,到数据库中去查询所有用户的信息,如果没有该用户信息,则该用户不能登录,需要先进行注册。如果有该相应的该用户的信息,则说明该用户是合法的用户,能成功登录,此时判断用户身份,如果是普通用户,到系统前台界面;如果是系统管理员,则转到后台工作界面。开 始输入用户名和密码判断用户名和密码是否正确管理员?管理员?错误提示否是否成功登录后台界面成功登录前台界面结 束是图4-3登录判断流程图4.2.3普通用户功能模块如果用户未登录,则可以浏览房屋信息,可以对房屋信息进行多种查询,也可以浏览本系统的新闻公告,还可以联系本站的管理员,把自己的意见、建议通过E-mail发送给管理员。如果用户想要发布房屋信息,则必须要登录才能发布,成功登录以后,用户可以浏览、搜索、发布、修改和删除个人房屋信息,修改个人密码信息,浏览网站新闻公告等。图4-4未登录用户浏览房屋

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论