报告 房屋租赁系统_第1页
报告 房屋租赁系统_第2页
报告 房屋租赁系统_第3页
报告 房屋租赁系统_第4页
报告 房屋租赁系统_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

PAGE2南昌航空大学实习报告JSP房屋出租管理系统学生:学号:专业:信息工程学院2011年12月24号PAGE24目录第1章绪论 11.1课题研究的背景介绍 11.2系统开发环境及开发平台介绍 21.2.1系统开发环境 21.2.2系统开发平台简介 2第2章系统开发技术介绍 52.1系统的B/S结构 52.1.1B/S结构简介 52.1.2B/S架构软件的优势与劣势 62.1.3B/S框架与C/S框架的联系与区别 72.2JSP技术概述 82.2.1JSP简介 82.2.2JSP技术的强势与弱势分析 92.2.3JSP动态网站开发技术 102.3MVC及Struts介绍 122.3.1MVC介绍 122.3.2Struts介绍 14第三章系统分析 153.1任务描述 153.2用UML用例图描述系统需求 153.2.1用例图简介 153.2.2系统用例分析 163.3功能分析 16第4章系统测试与维护 184.1系统测试 184.2网站维护 204.2.1维护内容 214.2.2维护方案 21第5章实验体会及截图 22参考资料 24第1章绪论1.1课题研究的背景介绍随着社会经济的发展,城市现代化建设步伐不断加快,城市规模不断扩大,人员的流动也不断加大,房屋出租逐渐成为社会生活的重要组成部分。无论是房屋出租还是房屋求租,都面临着大量需求。说到房屋出租,我们首先想到的就是房屋中介,但是不论对于房屋出租者还是对于求租者来说,要面对的问题实在让人头疼,首先是琳琅满目的中介公司让人感到无从选择,在要顾及中介单位可信度的同时,大量复杂的房产信息使他们感到迷茫,难以快速、准确地从中找到适合自己的房屋信息。再者,出租、承租双方进行交易的时候还要通过中介,使交易过程更加繁琐。而且中介单位还要收取的一定比例的中介费用,这也在一定程度上加重了房屋承租者的负担。因此,现实社会中急需一个第三者为房屋出租者与房屋求租者牵线搭桥,来弥补中介单位的种种不足。在互联网蓬勃发展的今天,网络和我们的生活、工作越来越密不可分,网络正领导着一个新时代的来临。于是我们就利用开放的Internet技术,开发出实时、快捷、全方位传播信息的平台,我们制作的房屋出租管理系统的网站,就成了人们关于生活中住房问题的信息载体,使得房屋信息在出租者与求租者之间传播更为轻松。这样,使原本复杂的房屋信息简单化,系统能及时为他们提供服务,使出租求租双方都能够方便快捷的得到信息。通过本系统来管理房屋出租情况,可以解决大量房屋信息的查询和管理,便于房屋出租者更好的发布其房屋信息,同时也为租房者提供方便。并且能够培养我们的综合分析设计能力,同时提高动手实践的能力。1.2系统开发环境及开发平台介绍1.2.1系统开发环境1.硬件环境CPU:DuoT56001.83GHz;内存:512MB以上;硬盘:100G.。2.软件环境操作系统:WindowsXP;数据库:SQLServer2000;开发工具包:JDK1.5.0;JSP服务器:Tomcat6.0;浏览器:IE7.0。1.2.2系统开发平台简介1.系统开发平台本系统开发语言选用Java,JSP,所以采用MyEclipse,Tomcat为主要开发工具,然后结合Dreamweaver,SQLServer2000数据库管理系统与WindowsXP操作系统进行。既考虑了系统的需求,又兼顾了运行的效率,以及今后系统的功能拓展等。2.Tomcat简介如今,基于Web的应用越来越多,传统的Html已经满足不了如今的需求。我们需要一个交互式的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杂志的编辑选为2001年度最具创新的java产品,可见其在业界的地位。在Tomcat中,应用程序的部署很简单,你只需将你的WAR放到Tomcat的webapp目录下,Tomcat会自动检测到这个文件,并将其解压。你在浏览器中访问这个应用的Jsp时,通常第一次会很慢,因为Tomcat要将Jsp转化为Servlet文件,然后编译。编译以后,访问将会很快。另外Tomcat也提供了一个应用:manager,访问这个应用需要用户名和密码,用户名和密码存储在一个xml文件中。通过这个应用,辅助于Ftp,你可以在远程通过Web部署和撤销应用。当然本地也可以。Tomcat有三种工作模式,分别是独立的Servlet容器、进程内的Servlet容器和进程外的Servlet容器。在利用其进行开发之前必须要清楚Tomcat的目录结构。因为它的目录结构和Web系统的创建和发布都有着很大的关系,通常,Tomcat的目录结构如下表:表1-1Tomcat的目录结构目录描述/bin存放启动和关闭Tomcat的各种脚本文件/conf存放Tomcat服务器的各种配置文件/server/lib包含了3个子目录:即classes、lib、webapps;/server/webapps存放Tomcat服务器所需要的各种JAR文件/common/lib存放Tomcat自带的两个Web应用:admin应用和manager应用/Shared/lib存放Tomcat服务器及所有Web应用都可以访问的JAR文件l/ogs存在所有Web应用都可以访问的JAR文件/webapps当发布Web应用时,默认情况下把Web应用放在此目录下/workTomcat把JSP生成的Servlet放在此目录下Tomcat不仅仅是一个Servlet容器,它也具有传统的Web服务器的功能:处理Html页面。但是与Apache相比,它的处理静态Html的能力就不如Apache.我们可以将Tomcat和Apache集成到一块,让Apache处理静态Html,而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代码与Html文件的分离,使Jsp的维护更方便。Tomcat确实是一个很好的工具,不仅仅因为其免费,功能强大,更因为其开放性。如今,开源软件越来越收到人们的重视,Linux就是一个成功的典型。3.MyEclipse简介MyEclipse企业级工作平台(MyEclipseEnterpriseWorkbench,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和J2EE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSF,CSS,Javascript,SQL,Hibernate。简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的J2EE集成开发环境,支持代码编写、配置、测试以及除错。Genuitec发布了MyEclipseEnterpriseWorkbench5.0,更智能、更快捷、更简单和更便宜的J2EE工具的新版本的诞生。它的价格对于个人和企业开发人员来说都是非常有吸引力的。这是J2EEIDE市场一个重量级的选手。通过增加UML双向建模工具、WYSIWYG的JSP/Strutsdesigner、可视化的Hibernate/ORM工具、Spring和Webservices支持,以及新的Oracle数据库开发,MyEclipse5.0继续为业界提供全面的产品。第2章系统开发技术介绍2.1系统的B/S结构2.1.1B/S结构简介B/S结构:(Browser/Server,浏览器/服务器模式):是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器(Browser),如NetscapeNavigator或InternetExplorer,服务器安装Oracle、Sybase、Informix或SQLServer等数据库。B/S模式体系结构的原理如图2-1所示,浏览器通过WebServer同数据库进行数据交互。Web浏览器Web浏览器Web服务器应用服务器HTTP请求HTML界面结果SQL请求数据库服务器图2-1B/S模式体系结构原理图B/S最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件。只要有一台能上网的电脑就能使用,客户端零维护。系统的扩展非常容易。B/S结构的使用越来越多,特别是由需求推动了AJAX技术的发展,它的程序也能在客户端电脑上进行部分处理,从而大大的减轻了服务器的负担;并增加了交互性,能进行局部实时刷新。2.1.2B/S架构软件的优势与劣势维护和升级方式简单。目前,软件系统的改进和升级越来越频繁,B/S架构的产品明显体现着更为方便的特性。对一个稍微大一点单位来说,系统管理人员如果需要在几百甚至上千部电脑之间来回奔跑,效率和工作量是可想而知的,但B/S架构的软件只需要管理服务器就行了,所有的客户端只是浏览器,根本不需要做任何的维护。无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只需要针对服务器进行;如果是异地,只需要把服务器连接专网即可,实现远程维护、升级和共享。所以客户机越来越“瘦”,而服务器越来越“胖”是将来信息化发展的主流方向。今后,软件升级和维护会越来越容易,而使用起来会越来越简单,这对用户人力、物力、时间、费用的节省是显而易见的,惊人的。因此,维护和升级革命的方式是“瘦”客户机,“胖”服务器。成本降低,选择更多。大家都知道windows在桌面电脑上几乎一统天下,浏览器成为了标准配置,但在服务器操作系统上windows并不是处于绝对的统治地位。现在的趋势是凡使用B/S架构的应用管理软件,只需安装在Linux服务器上即可,而且安全性高。所以服务器操作系统的选择是很多的,不管选用那种操作系统都可以让大部分人使用windows作为桌面操作系统电脑不受影响,这就使的最流行免费的Linux操作系统快速发展起来,Linux除了操作系统是免费的以外,连数据库也是免费的,这种选择非常盛行。比如说很多人每天上“新浪”网,只要安装了浏览器就可以了,并不需要了解“新浪”的服务器用的是什么操作系统,而事实上大部分网站确实没有使用windows操作系统,但用户的电脑本身安装的大部分是windows操作系统。应用服务器运行数据负荷较重。由于B/S架构管理软件只安装在服务器端上,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器端完全通过WWW浏览器实现,极少部分事务逻辑在前端实现,所有的客户端只有浏览器,网络管理人员只需要做硬件维护。但是,应用服务器运行数据负荷较重,一旦发生服务器“崩溃”等问题,后果不堪设想。因此,许多单位都备有数据库存储服务器,以防万一。2.1.3B/S框架与C/S框架的联系与区别C/S是Client/Server的缩写。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或SQLServer。客户端需要安装专用的客户端软件。B/S是Brower/Server的缩写,客户机上只要安装一个浏览器(Browser),如InternetExplorer,服务器安装Oracle、Sybase、Informix或SQLServer等数据库。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现。浏览器通过WebServer同数据库进行数据交互。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系列的BizTalk2000Exchange2000等,全面支持网络的构件搭建的系统.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-BB-CB-G等信息、流向的变化,更像交易中心。2.2JSP技术概述2.2.1JSP简介JSP(JavaServerPages)是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。用JSP开发的Web应用是跨平台的,即能在Linux下运行,也能在其他操作系统上运行。JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。JSP与JavaServlet一样,是在服务器端执行的,通常返回该客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。JavaServlet是JSP的技术基础,而且大型的Web应用程序的开发需要JavaServlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。2.2.2JSP技术的强势与弱势分析1.JSP技术的强势(1)一次编写,到处运行。在这一点上Java比PHP更出色,除了系统之外,代码不用做任何更改。(2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP/PHP的局限性是显而易见的。(3)强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。(4)多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。2.JSP技术的弱势(1)与ASP一样,Java的一些优势正是它致命的问题所在。正是由于为了跨平台的功能,为了极度的伸缩能力,所以极大的增加了产品的复杂性。(2)Java的运行速度是用class常驻内存来完成的,所以它在一些情况下所使用的内存比起用户数量来说确实是“最低性能价格比”了。从另一方面,它还需要硬盘空间来储存一系列的.java文件和.class文件,以及对应的版本文件。2.2.3JSP动态网站开发技术太阳微系统公司(SunMicrosystemsInc.)在Web服务器、应用服务器、交易系统以及开发工具供应商间广泛支持与合作下,整合并平衡了已经存在的对Java编程环境(例如JavaServlets和JavaBeans)进行支持的技术和工具后产生了一种新的、开发基于Web应用程序的方法——JavaServerPages技术(JSP)。这种动态网站开发技术的特点是:能够在任何Web或应用程序服务器上运行;

分离了应用程序的逻辑和页面显示;能够进行快速的开发和测试;简化了开发基于Web的交互式应用程序的过程。为了快速方便地进行动态网站的开发,JSP在以下几个方面做了改进,使其成为快速建立跨平台的动态网站的首选方案。(1)将内容的生成和显示进行分离用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面,并使用JSP标识或者小脚本来生成页面上的动态内容(内容是根据请求变化的,例如请求账户信息或者特定的一瓶酒的价格等)。生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在脚本中,所有的脚本在服务器端运行。由于核心逻辑被封装在标识和JavaBeans中,所以Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。在服务器端,JSP引擎解释JSP标识和脚本,生成所请求的内容(例如,通过访问JavaBeans组件,使用JDBC技术访问数据库或者包含文件),并且将结果以HTML(或者XML)页面的形式发送回浏览器。这既有助于作者保护自己的代码,又能保证任何基于HTML的Web浏览器的完全可用性。(2)可重用组件绝大多数JSP页面依赖于可重用的、跨平台的组件(JavaBeans或者EnterpriseJavaBeans组件)来执行应用程序所要求的复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者和客户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。(3)采用标识Web页面开发人员不会都是熟悉脚本语言的编程人员。JSP技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。标准的JSP标识能够访问和实例化JavaBeans组件,设置或者检索组件属性,下载Applet,以及执行用其他方法更难于编码和耗时的功能。(4)适应平台几乎所有平台都支持Java,JSP+JavaBeans几乎可以在所有平台下通行无阻。从一个平台移植到另外一个平台,JSP和JavaBeans甚至不用重新编译,因为Java字节码都是标准的与平台无关的。(5)数据库连接Java中连接数据库的技术是JDBC,Java程序通过JDBC驱动程序与数据库相连,执行查询、提取数据等操作。Sun公司还开发了JDBC-ODBCbridge,利用此技术Java程序可以访问带有ODBC驱动程序的数据库,目前大多数数据库系统都带有ODBC驱动程序,所以Java程序能访问诸如Oracle、Sybase、MSSQLServer和MSAccess等数据库。此外,通过开发标识库,JSP技术可以进一步扩展。第三方开发人员和其他人员可以为常用功能创建自己的标识库。这使得Web页面开发人员能够使用熟悉的工具和如同标识一样的执行特定功能的构件来进行工作。JSP技术很容易整合到多种应用体系结构中,以利用现存的工具和技巧,并且能扩展到支持企业级的分布式应用中。作为采用Java技术家族的一部分,以及Java2(企业版体系结构)的一个组成部分,JSP技术能够支持高度复杂的基于Web的应用。由于JSP页面的内置脚本语言是基于Java的,而且所有的JSP页面都被编译成为JavaServlets,所以JSP页面具有Java技术的所有好处,包括健壮的存储管理和安全性。作为Java平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点。利用JSP技术,动态信息由JSP页面来表现,JSP页面由安装在Web服务器或者使用JSP的应用服务器上的JSP引擎执行。JSP引擎接受客户端对JSP页面的请求,并且生成JSP页面作为对客户端的响应。JSP页面通常被编译成为JavaServlets,这是一个标准的Java扩展。页面开发人员能够访问全部的Java应用环境,以利用Java技术的扩展性和可移植性。当JSP页面第一次被调用时,如果它还不存在,就会被编译成为一个JavaServlets类,并且存储在服务器的内存中。这就使得在接下来的对该页面的调用中,服务器会有非常快的响应(这避免了CGI-BIN为每个HTTP请求生成一个新的进程的问题)。JSP页面可以包含在多种不同的应用体系结构或者模型中,可以用于由不同协议、组件和格式所组成的联合体中。基于JSP的动态信息发布技术是一个开放的、可扩展的建立动态Web页面的标准。不论采用什么创建工具,开发人员都可以使用JSP页面来创建可移植的Web应用,在不同的Web应用服务器上运行。2.3MVC及Struts介绍2.3.1MVC介绍MVC模式是"Model-View-Controller"的缩写,中文翻译为"模式-视图-控制器"。即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层——模型层、视图层、控制层。视图(View)代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML、XML和Applet。随着应用的复杂性和规模性,界面的处理也变得具有挑战性。一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。业务流程的处理交予模型(Model)处理。比如一个订单的视图只接受来自模型的数据并显示给用户,以及将用户界面的输入数据和请求传递给控制和模型。模型(Model):就是业务流程/状态的处理以及业务规则的制定。业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计可以说是MVC最主要的核心。目前流行的EJB模型就是一个典型的应用例子,它从应用技术实现的角度对模型做了进一步的划分,以便充分利用现有的组件,但它不能作为应用设计模型的框架。它仅仅告诉你按这种模型设计就可以利用某些技术组件,从而减少了技术上的困难。对一个开发者来说,就可以专注于业务模型的设计。MVC设计模式告诉我们,把应用的模型按一定的规则抽取出来,抽取的层次很重要,这也是判断开发人员是否优秀的设计依据。抽象与具体不能隔得太远,也不能太近。MVC并没有提供模型的设计方法,而只告诉你应该组织管理这些模型,以便于模型的重构和提高重用性。我们可以用对象编程来做比喻,MVC定义了一个顶级类,告诉它的子类你只能做这些,但没法限制你能做这些。这点对编程的开发人员非常重要。业务模型还有一个很重要的模型那就是数据模型。数据模型主要指实体对象的数据保存(持续化)。比如将一张订单保存到数据库,从数据库获取订单。我们可以将这个模型单独列出,所有有关数据库的操作只限制在该模型中。控制(Controller)可以理解为从用户接收请求,将模型与视图匹配在一起,共同完成用户的请求。划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层并不做任何的数据处理。例如,用户点击一个连接,控制层接受请求后,并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。因此,一个模型可能对应多个视图,一个视图可能对应多个模型。模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。如果用户通过某个视图的控制器改变了模型的数据,所有其它依赖于这些数据的视图都应反映到这些变化。因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图,导致显示的更新。这实际上是一种模型的变化-传播机制。模型、视图、控制器三者之间的关系和各自的主要功能,如图2-2所示。模型模型封装应用程序状态响应状态查询应用程序功能通知视图改变视图解释模型模型更新请求发送用户输入给控制器允许控制器选择试图控制器定义应用程序行为用户动作映射成模型更新选择响应的视图视图选择用户请求状态改变状态查询通知改变方法调用事件图2-2MVC组件类型的关系和功能2.3.2Struts介绍Struts是Apache基金会Jakarta项目组的一个OpenSource项目,它采用MVC模式,能够很好地帮助java开发者利用J2EE开发Web应用。和其他的java架构一样,Struts也是面向对象设计,将MVC模式"分离显示逻辑和业务逻辑"的能力发挥得淋漓尽致。Struts框架的核心是一个弹性的控制层,基于如JavaServlet,JavaBeans,ResourceBundles与XML等标准技术,以及JakartaCommons的一些类库。Struts有一组相互协作的类(组件)、Serlvet以及jsptaglib组成。基于Struts构架的Web应用程序基本上符合JSPModel2的设计标准,可以说是一个传统MVC设计模式的一种变化类型。Struts这个名字来源于在建筑和旧式飞机中使用的支持金属架。它的目的是为了减少在运用MVC设计模型来开发Web应用的时间。Struts跟Tomcat、Turbine等诸多Apache项目一样,是开源软件,这是它的一大优点,使开发者能更深入的了解其内部实现机制。除此之外,Struts的优点主要集中体现在两个方面:Taglib和页面导航。Taglib是Struts的标记库,灵活动用,能大大提高开发效率。另外,就目前国内的JSP开发者而言,除了使用JSP自带的常用标记外,很少开发自己的标记,或许Struts是一个很好的起点。第三章系统分析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-3后台功能结构图第4章系统测试与维护4.1系统测试系统测试包括集成两个或更多的实现系统功能或系统特点的组件。然后再测试这个集成的系统。在重复开发软件的过程中,系统测试包括测试交给用户的增长部分。在瀑布处理过程,系统测试包括测试整个系统。对大部分复杂的系统,系统测试包括两个主要的阶段:集成测试,在测试过程中,测试团队可以获得系统的源代码。发现问题后,测试团队试着找到问题的根源所在,然后确认必须得测试的组件。集成测试主要是找出系统中存在的漏洞。开放测试。该版本的系统可以开放给用户测试,在这个过程中,测试团队主要是使系统能够满足用户的需求,以及确保系统的可靠性。开放测试又称为黑盒测试,测试团队只是简单的涉及测试系统能否正常的工作,发现问题后交给开发团队处理,他们的工作就是调试程序。有用户参与的测试有时候又称为认可测试。如果开放测试的结果很好,用户可能就会使用该系统。基本上,你可以把集成测试看成是测试由一组系统组件的不完善的系统。开放测试则涉及到测试想要交给用户使用的系统。自然,两种测试会存在交搭的部分,特别是由于大量的开放和系统开放不完全,总之,集成测试应该是优先发现系统中的漏洞,系统测试应该优先使系统能够满足用户的需求。然而,实际上,在这些过程中也会存在有效性测试和缺陷测试的成分。1.集成测试系统集成的过程包括建立一个由其组件构成的系统,以及测试该集成的系统,看是否存在由组件之间相互作用而产生问题。那些集成的组件可能是可重用的组件.对于很多大型的系统,所有这三种类型的组件都可能会用到。集成测试检查这些组件事实上是否一起工作,正确的调用以及通过它们的接口在适当的时候传输正确的数据。系统集成涉及确认一组实现部分系统功能的组件,以及通过添加代码来使它们一起工作。有时候,先是形成系统的整体框架,然后再把组件添加到其中,这叫做自上而下集成。二者选其一的,你可以先集成提供普通功能的结构组件,像网络和数据库接口,然后再添加功能组件,这是自底而上集成。实际上,对于很多系统,都采用二者兼用的集成方法,把结构组件和功能组件都添加到系统中。自顶向下和自底向上的集成过成中,你经常不得不填写额外的代码,以模拟其他组件和能让系统运行。在集成测试中产生的只要问题是寻找错误。由于系统组件之间存在着复杂的相互作用,因此,当发现一个异常的输出时,你可能难以确定错误发生在哪。为了更容易的知道错误所在,你应该总是使用一种增量的方法去系统集成和测试。最初,你应该设计一个小型的系统,然后测试它。接着你添加组件到这个系统,然后测试添加的那一部分。当你要进行集成测试时,你不得不决定各个组件的集成顺序,在像XP的操作系统中,用户涉及到开发过程和决定在每一次系统添加功能时应添加那些功能,因此,系统集成由用户的优先级来驱动在开发单个组件的其它方法,尤其是开发集成组件,用户有可能不参与,而由开发团队来决定集成的优先次序。在这些情况中,但凭经验的做法是先集成那些实现最常用功能的组件,这意味着那些最常用组件总是最经常被测试,例如,在图书管理系统中,你应该先集成图书查询功能,因此,即使在最小型系统中,用户能够查询他们需要的文件。接着你应该添加允许用户下载文件的功能,然后添加大量执行其他系统功能的组件。当然,事实很少像这种模型建议的那样简单,系统功能的实现可能需要大量的组件。要测试一项新的功能,你可能不得不集成几个不同的组件,测试结果能够揭示这些单个组件和系统其他部分之间相互作用而产生的错误。修改测试和集成新的组件会改变已经测试完的组件之间的相互作用的模式。在一些简单的测试中不能被发现的错误会在这里被检查出来。这些问题意味着当集成一项新的功能时,只要新的测试要求修改新的系统功能,则重新测试以前增添的功能就显得非常重要。重新执行一系列存在的测试叫做倒退测试。如果倒退测试出现问题,或者是检查是否是由于新增的模块而产生了这些问题。很明显,倒退测试如果没有一些自动化操作的支持是相当昂贵和不实际的。在极限编程中,所有的

温馨提示

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

评论

0/150

提交评论