经济管理学院信息系届毕业文献综述MVC在J2EE中的应用.docx
《经济管理学院信息系届毕业文献综述MVC在J2EE中的应用.docx》由会员分享,可在线阅读,更多相关《经济管理学院信息系届毕业文献综述MVC在J2EE中的应用.docx(12页珍藏版)》请在冰豆网上搜索。
经济管理学院信息系届毕业文献综述MVC在J2EE中的应用
XXXXXXX学院
本科毕业论文
——文献综述
题目音乐共享平台系统
指导教师XXX职称XXX
学生姓名刘汉君学号XXX
专业XXX班级2班
院(系)XXXX
完成时间2012年2月26日
MVC在J2EE中的应用
摘要:
研究了J2EE平台和MVC设计模式思想的基础上,针对销售系统中出现的系统不易于扩展的问题,开发了基于J2EE和MVC设计模式的销售系统。
关键词:
分销系统;J2EE;模型-视图-控制器;EJB
Abstract:
BasedontheilluminationofthecharacteristicsofB/SandC/SstructureandtheanalysisoftheJ2EEplatformanddesigningpatternofMVC,andaimedatsolvingtheproblemofdifficultexpansionindistributionsystem,adistributionsystembasedonJ2EEandMVCdesignpatternisdeveloped.
Keywords:
distributionsystem;J2EE;MVC;EJB
引言
销售系统是指利用先进的IT技术对企业物流,资金流,信息流进行全面管理的信息系统。
对于销售企业来说,成功地实施销售系统不仅可以降低企业库存,降低销售费用,而且可以提高企业的资金运转速度,从而保证企业的正常运营和快速发展。
目前销售系统在我国得到了前所未有的重视,在销售企业中也得到了广泛的应用,各软件厂商及研究机构纷纷推出了自己的销售系统,但是除了用友、金蝶等大型企业信息化软件厂商以外,大部分销售系统不管是从技术上还是从功能上都存在着缺陷。
首先,就功能上来说普遍存在功能单一、信息管理范围局限在企业内部、流程固定等缺点;就技术上来说存在软件开发模式陈旧,系统不宜于扩展等缺点。
本文针对销售系统的现状,开发了基于J2EE平台和MVC设计模式的销售系统,本系统不仅具有产品配置化、流程定制化、供应链管理、资金流管理等功能特点,而且是一个可扩展、可移植、易维护的高性能应用系统。
MVC设计模式
MVC是Model-View-Controller的简称,即模型-视图-控制器。
它强制性的把应用程序的输入、处理和输出分开。
MVC把应用程序分为3个模块:
模型、视图和控制器,它们分别担负不同的任务,下图显示这几个模块各自的功能以及它们的相互关系:
(1)视图:
视图是用户看到并与之交互的界面。
视图是向用户显示相关数据,并能接受用户的输入数据,但是它并不进行任何实际的业务处理。
对于基于请求/响应方式的Web应用,模型位于服务器端,视图位于浏览器端。
(2)模型:
模型是应用程序的主题部分。
模型表示业务数据和业务逻辑。
一个模型能为多个视图提供数据。
由于同一个模型可以被多个视图重用,所以提高了应用的可重用性。
(3)控制器:
控制器接受用户的输入并调用模型和视图去完成用户的请求。
当Web用户单击Web页面中的提交按钮来发送HTML表单时,控制器接受请求并调用相应的模型组件去处理请求然后调用相应的视图来显示模型返回的数据。
MVC的处理过程如下:
首先控制器接受用户的请求,并决定应该调用哪个模型来进行处理;然后模型根据用户请求进行相应的业务逻辑处理,并返回数据;最后控制器调用相应的视图来格式化模型返回的数据,并通过视图来呈现给用户。
基于J2EE和MVC设计模式的B/S结构
图4给出了本系统采用的基于J2EE和MVC设计模式的B/S三层架构,如图所示,基于J2EE和MVC设计模式的系统模型以Web浏览器作为客户端,以Web服务器,EJB应用服务器为中间层完成销售系统的事务逻辑,数据层则是传统的大型企业级数据库服务器。
三层结构解释如下:
(1)客户端:
即Web浏览器。
该层中包含系统的显示逻辑。
它的任务是由Web浏览器向网络上的某一Web服务器提出服务请求,通过验证以后从Web服务器中下载Web层中的静态HTML页面或由JSP动态生成的HTML页面等,并把它显示在Web浏览器上。
(2)中间层:
其包含Web服务器层和应用服务器层。
①Web服务器层:
Web服务器是J2EE体系结构中间层的一个重要组成部分。
它在技术上主要是Servlet、JSP以及JavaBean,功能上实现了用户界面的表现。
运行在Web层中的Web组件依赖Web容器来支持诸如响应客户请求以及查询EJB组件等功能。
②应用服务器层:
J2EE使用EJB服务器作为EJB组件的部署环境,在EJB服务器中提供了分布式计算中组件需要的所有服务,例如组件生命周期的管理、数据库连接的管理、分布式事务管理、组件的命名服务、自动容错以及负载的自动均衡能力等。
实现业务逻辑的EJB组件可以高效地运行在EJB服务器中支持多客户端的访问。
客户端可先向运行在Web服务器上的Servlet发出请求,通过Servlet调用运行在EJB服务器中的EJB组件,以实现复杂的业务逻辑。
本销售系统采用BEAWeblogic8.1作为应用服务器。
(3)数据库层:
数据库层分布于系统中的数据库服务器上,它存储着销售系统中的业务信息以及包括用户权限等控制信息,如销售机构信息、供应商信息、库存信息等。
本系统数据库管理系统采用关系型数据库(DBMS)MYSQL。
J2EE的核心技术是EJB组件结构,如图4所示,在本销售系统中采用EJB技术进行销售系统中间层的业务逻辑开发,它可以带来如下好处:
开发人员不用考虑诸如事务处理、安全性及线程控制等系统级服务,这些服务都由EJB服务器提供。
编写的EJB组件可以部署到网络中不同的EJB服务器中,并且能与CORBA、DCOM等其它类型的组件相交互。
使用Java语言编写的EJB组件还具有良好的跨平台性,有利于系统的集成,真正实现了销售系统的分布特性。
当销售系统出现新的需求时,开发者可以根据新的需求,编写新的EJB组件以实现新的商务逻辑,再将其组装到原系统中,而并不需要对原系统的核心部分进行修改,有利于系统的扩展。
MVC如何工作
MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。
使用MVC应用程序被分成三个核心部件:
模型、视图、控制器。
它们各自处理自己的任务。
视图
视图是用户看到并与之交互的界面。
对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括MacromediaFlash和象XHTML,XML/XSL,WML等一些标识语言和Webservices. 如何处理应用程序的界面变得越来越有挑战性。
MVC一个大的好处是它能为你的应用程序处理很多不同的视图。
在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。
模型
模型表示企业数据和业务规则。
在MVC的三个部件中,模型拥有最多的处理任务。
例如它可能用象EJBs和ColdFusionComponents这样的构件对象来处理数据库。
被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。
由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。
控制器
控制器接受用户的输入并调用模型和视图去完成用户的需求。
所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。
它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。
为什么要使用MVC
大部分Web应用程序都是用像ASP,PHP,或者CFML这样的过程化(自PHP5.0版本后已全面支持面向对象模型)语言来创建的。
它们将像数据库查询语句这样的数据层代码和像HTML这样的表示层代码混在一起。
经验比较丰富的开发者会将数据从表示层分离开来,但这通常不是很容易做到的,它需要精心的计划和不断的尝试。
MVC从根本上强制性的将它们分开。
尽管构造MVC应用程序需要一些额外的工作,但是它给我们带来的好处是毋庸置疑的。
首先,最重要的一点是多个视图能共享一个模型,现在需要用越来越多的方式来访问你的应用程序。
对此,其中一个解决之道是使用MVC,无论你的用户想要Flash界面或是WAP界面;用一个模型就能处理它们。
由于你已经将数据和业务规则从表示层分开,所以你可以最大化的重用你的代码了。
由于模型返回的数据没有进行格式化,所以同样的构件能被不同界面使用。
例如,很多数据可能用HTML来表示,但是它们也有可能要用AdobeFlash和WAP来表示。
模型也有状态管理和数据持久性处理的功能,例如,基于会话的购物车和电子商务过程也能被Flash网站或者无线联网的应用程序所重用。
因为模型是自包含的,并且与控制器和视图相分离,所以很容易改变你的应用程序的数据层和业务规则。
如果你想把你的数据库从MySQL移植到Oracle,或者改变你的基于RDBMS数据源到LDAP,只需改变你的模型即可。
一旦你正确的实现了模型,不管你的数据来自数据库或是LDAP服务器,视图将会正确的显示它们。
由于运用MVC的应用程序的三个部件是相互独立,改变其中一个不会影响其它两个,所以依据这种设计思想你能构造良好的松耦合的构件。
对我来说,控制器也提供了一个好处,就是可以使用控制器来联接不同的模型和视图去完成用户的需求,这样控制器可以为构造应用程序提供强有力的手段。
给定一些可重用的模型和视图,控制器可以根据用户的需求选择模型进行处理,然后选择视图将处理结果显示给用户。
MVC的优点
低耦合性
视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码,同样,一个应用的业务流程或者业务规则的改变只需要改动MVC的模型层即可。
因为模型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。
高重用性和可适用性
随着技术的不断进步,现在需要用越来越多的方式来访问应用程序。
MVC模式允许你使用各种不同样式的视图来访问同一个服务器端的代码。
它包括任何WEB(HTTP)浏览器或者无线浏览器(wap),比如,用户可以通过电脑也可通过手机来订购某样产品,虽然订购的方式不一样,但处理订购产品的方式是一样的。
由于模型返回的数据没有进行格式化,所以同样的构件能被不同的界面使用。
例如,很多数据可能用HTML来表示,但是也有可能用WAP来表示,而这些表示所需要的命令是改变视图层的实现方式,而控制层和模型层无需做任何改变。
较低的生命周期成本
MVC使开发和维护用户接口的技术含量降低。
快速的部署
使用MVC模式使开发时间得到相当大的缩减,它使程序员(Java开发人员)集中精力于业务逻辑,界面程序员(HTML和JSP开发人员)集中精力于表现形式上。
可维护性
分离视图层和业务逻辑层也使得WEB应用更易于维护和修改。
有利于软件工程化管理
由于不同的层各司其职,每一层不同的应用具有某些相同的特征,有利于通过工程化、工具化管理程序代码。
音乐分享网站分析
热门的音乐推荐分享网站。
用户对音乐的需求,不仅仅局限在试听和下载上,音乐也并不是只用来给自己听,还可以用音乐来交朋友。
这也是音乐和WEB2.0结合出来的新的服务。
如果你喜欢听蔡依林,那么你可能也听王心凌;喜欢朴树的人是不是都会喜欢许巍?
这就是在线音乐推荐服务的逻辑。
这种新式推荐手段的服务产业顺势而生,成就了音乐网站新的模式。
现在国内有八宝盒等网站已经开始模仿这种模式了,接下来会音乐网站们会一窝蜂地上这种新的音乐推荐模式了。
一、潘多拉()
现在是音乐推荐类网站的龙头之一。
这个网站的核心功能是根据用户的喜好播放风格相近的歌曲,网站用“音乐基因工程”分析用户的播放数据,推断出用户喜欢什么歌。
Pandora的界面非常简单,不用下载任何客户端。
可以根据用户提交的一首歌曲名字,找出一组风格相近的歌曲,无止境的播放。
用户可以对系统推荐的歌曲进行喜好的判断,对每首歌有进一步筛选的权利,这有助于系统推荐的精确度,pandora还给出了歌曲入选的理由。
用户还可以把在Pandora播放器里听的歌曲加入收藏(AddtoMyFavorites),然后做成曲目(list),把挑选的播放列表展示在自己的Blog上,只需添加一段简单的代码就可以了。
二、Last.fm
Last.fm是在潘多拉的基础上,将web2.0的概念引入进来。
输入歌曲、专集或者歌手名称,系统会为用户找到匹配的音乐。
除了这些基本功能以外,它还提供了SNS、交友,圈子,博客等服务。
Last.fm的功能有标注Tags、写乐评、生成曲目、将歌曲列表发布到自己的Blog等网页上、Fans团、订阅专题音乐杂志等等,是一个完美的音乐SNS社区。
它成了唱片公司、艺人、歌迷之间的桥梁,以及音乐流行的风向标。
Last.fm和pandora的比较:
潘多拉是以歌曲为主线,Last.fm是以歌手为主线;Last.fm和Pandora的侧重点不同:
Pandora侧重用技术分析歌曲的相关度,包括曲调、节奏、配器、编剧、歌词等;而Last.fm似乎更侧重用户分析,使用用户标注的tag,侧重于挖掘用户音乐播放行为数据的和“人与音乐”之间的关系。
Last.fm分享的是列表.通过在本地播放器上安装一个插件,把用户的播放器的播放列表在网站上同步显示.然后提供XML输出.让其他人订阅;用户也可以把曲目放置在自己的Blog或个人主页内,让别人知道自己再听什么音乐,张扬了个性;也可以通过这些手段交到喜好相近的好友;如果是收费用户,还可以创立自己的音乐频道;用户可以在播放器和网站首页用搜索引擎搜索歌曲,为了保护版权,用户搜索出来的音乐可能只能试听一部分。
Last.fm的功能很全,甚至为每位歌手提供了wiki(一种多人协作的写作工具。
Wiki站点可以有多人,甚至任何访问者来维护,每个人都可以发表自己的意见,或者对共同的主题进行扩展或者探讨)图形界面。
推荐分享模式在音乐行业的里程碑意义
音乐推荐服务可以促进在线音乐销售,能够使用户更容易地发现音乐。
在美国有3/4的被访者表示其购买的音乐都与其他人的共享和推荐有关。
就好像人们逛超市一样,出来后会买很多进超市之前没有计划买的物品。
亚马逊依靠评价体系为其增加了20%的书籍销售量,“客户对客户”的评价体系在数字音乐网站中也将起到重要作用。
而“分享音乐”服务,则可以利用音乐来交友,开发了音乐网站模式的一片新蓝海领域。
把经营者的运营观念从版权销售中解脱出来,激发了网站经营者站在用户角度来思考问题。
分析用户行为服务,有可能超越XX音乐榜,建立最权威的排行榜
像潘多拉、last.fm这样的音乐网站模式,对用户的帮助服务要比传统电台排行榜更有优势。
传统的流行音乐排行榜基本都是主办方内部主观操作等来评选出来的,再根据一些电台的播放率和专辑销量等指标,这种方式很粗略,也很容易作假,缺乏公正性。
传统排行榜只会告诉大家,目前哪些歌曲更流行;而潘多拉、last.fm可以让用户能听到他们应该会喜欢的音乐。
传统的排行榜是音乐的“社会化”应用,而潘多拉是音乐的“个性化”服务。
现在“社会化”和“个性化”在正在有融合的趋势,这样两者结合起来的排行榜才更权威,更公正,更有说服力!
推荐音乐网站掌握用户大量的信息和数据分析,这一点对于音乐公司是非常宝贵的,可以更精确地掌握流行音乐市场趋势,然后根据市场需求来制作音乐,不用再盲目靠中彩票思维来经营。
我们可以设想一下,如果一个拥有大量用户的网站,例如QQ等其他门户网站,它整合了潘多拉、last.fm的功能,再结合搜索功能。
这样就会有更多参与排行榜评选的用户、更全面的音乐数据分析、评选结果也会更具即时性、数据采集成本也会更低,所以根据用户个性化和社会化结合而分析出来的这个榜,会比任何排行榜都精确,甚至超越XX排行榜,那家大公司运用这一优势来和XX侧面竞争音乐搜索,可能会有胜算。
当然更有可能的是XX自己来整合这些功能,进一步强大自己MP3搜索功能和在音乐行业的霸主地位。
目前已经有迹象显示,门户网站已经在向这一趋势来发展。
案例1:
2005年8月份,GoogleGtalk进行了升级,其中就增加音乐状态(MusicStatus)和趋势(MusicTrends)功能。
GoogleTalk利用MusicStatus功能可以显示过去一周人们在Gtalk上最常听的20首歌曲,通过检测这些音乐信息,生成出一个音乐流行度排行榜(
这样出来的排行榜从理论上讲,和XX的音乐风云榜有得一拼。
因为这是真正用户正在实时听的音乐,而不仅仅是根据关键词的搜索热度。
但目前该服务只在美国推出,GTalk的使用人数相当少,据说活跃用户才几十万,所以目前来讲这个的音乐榜可信度就比较片面。
但是谁也不能小看Google。
如果GoogleMusicTrends能通过对Google用户音乐搜索数据的采集和分析,加上也配合last.fm之类的推荐音乐电台,那么GoogleMusicTrends将能真正掌握了音乐的流行文化。
案例2:
MSN同潘多拉合作,重建了它的在线电台()。
用户可以创建自己的个性化电台,还可以享受音乐推荐功能发现更多相关的新音乐。
这不仅是MSNradio这样传统的网络电台对自我的改造和升级,而且是音乐推荐服务和即时通讯软件的结合。
如果用户能够像GoogleGtalk一样,看到并搜集其他好友的音乐喜好,再加上MSN强大的交友和沟通功能……那么它将产生巨大的能量和潜力。
结语
基于MVC设计模式,采用框架软件Struts来实现Web开发应用,充分利用Java的强大功能和平台无关性的特点。
Struts是一种优秀的J2EE、MVC架构框架,可以使开发人员集中精力编写JSP和业务逻辑及与外部数据库进行交互的代码而不用考虑基础框架问题,利用taglib获得可重用的代码,利用ActionServlet配合Struts-config.xml实现对整个系统导航,增强了开发人员对系统的整体把握;用户界面与业务逻辑分离,使得页面设计者和程序开发者更好地协调工作,从而提高应用程序的柔韧性,使整个系统的开发有条不紊、容易集成、便于维护升级。
参考文献
[1]EdRoman.精通EJB[M].第2版.北京:
电子工业出版社,2002.
[2]萨师煊,王珊.数据库系统概论[M].第3版.北京:
高等教育出版
社,2000.
[3]余冬梅,张秋余,林常须,等.基于J2EE支持多客户端的MVC
设计模式研究[J].计算机工程与设计,2005,26(3):
784-786.
[4]孙卫琴.精通Struts:
基于MVC的JavaWeb设计与开发[M].
北京:
电子工业出版社,2004.
[5]罗鸿,王忠民.ERP原理设计实施[M].北京:
电子工业出版社,
2003.200-207.
[6]程控,革扬.MRPⅡ/ERP原理与应用[M].北京:
清华大学出版
社,2002.
[7]阎宏.Java与模式[M].北京:
电子工业出版社,2004.
[8]周丽.DRP分销管理系统研究[D].大连:
东北财经大学,2001.
[9]杨春程.基于J2EE组件的制造企业网络化分销管理系统的研
究及应用[D].重庆:
重庆大学,2005.