公务员期刊网 精选范文 mvc框架范文

mvc框架精选(九篇)

mvc框架

第1篇:mvc框架范文

Abstract: Along with the development of J2EE technology, many excellent Java Web frames based on MVC pattern were produced. It becomes a major challenge for system developers that how to choose the appropriate Web framework according to the characteristics of the actual project to develop projects. This paper makes a deep comparison analysis and discussion to several popular MVC frameworks in the application of J2EE.

关键词: J2EE;MVC;Struts;Spring;Web Work;Tapestry;JSF

Key words: J2EE;MVC;Struts;Spring;Web Work;Tapestry;JSF

中图分类号:TP311 文献标识码:A文章编号:1006-4311(2010)19-0102-02

0引言

随着应用程序的大型化和复杂化,传统开发方式已不能满足应用需求。MVC(模型一视图一控制器)设计模式的引入很好的解决了上述问题,MVC的核心思想就是视图层只关注显示相关的内容,模型层只负责业务逻辑,控制器则把视图和模型相互联系起来。然而在现实中由于每个人对应用的理解不尽相同,所以很难严格按照MVC的规范来做。在J2EE的应用中,已经出现了很多实现MVC规范的框架,框架是可重用半成品软件。在J2EE的应用中使用这些实现了MVC规范的框架,开发人员采用“填空式”的方式来进行软件开发,有助于开发者快速和容易地建立起可扩展、可复用的大型的企业级应用,大大提高开发效率,同时也可以大大降低因人员变更所带来的风险,随着J2EE的成熟,MVC设计模式正成为在J2EE平台上推荐的一种设计模型,也是广大Java开发者非常感兴趣的设计模型。

1Web MVC框架的三种类型

1.1 基于请求驱动目前最流行的Web MVC框架,如WebWork、Struts、Spring MVC。

1.2 基于事件驱动代表的Web MVC框架有Tapestry、JSF(JSR127)。

1.3 基于Portlets(JSR168)类似于Servlets,代表的Web MVC框架是JetSpeed。

2MVC框架简介

2.1 Struts MVCStruts是一个基于J2EE平台的轻量级开源MVC框架,也是目前最成熟的Web框架的之一。Struts是Apache软件基金下Jakarta项目的一个组成部分。Struts简单易用、敏捷迅速,它把Servlet、JSP、JavaBean、自定义标签和信息资源整合到一个统一的框架中,极大地节省了运用MVC模式开发Web应用的时间。

2.2 Spring MVCSpring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架。从大小与开销两方面而言Spring都是轻量级的。Spring通过一种称作控制反转(IOC)的技术促进了松耦合。同时,Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务进行内聚性的开发。

2.3 WebWork MVCWebWork是由OpenSymphony组织开发的,致力于组件化和代码重用,是基于MVC模式的JavaWeb框架,较Struts框架更为简单、灵活、高效。

2.4 Tapestry MVCTapestry是基于组件的Java Web应用框架。它架构在Java Servlet基础之上,用于创建动态、交互式网站。在Tapestry中一切都是组件。Tapestry框架是一个位于Java Servlet容器和Tapestry应用程序之间的层。Tapestry不是一个独立运行的服务器,是一个Servlet的扩展,运行于Servlet容器或包含Servlet容器的应用服务器中。Tapestry应用其实是由一系列页面组成,页每个页面是由可以复用的组件构成。

2.5 JSF 框架JavaServer Faces(JSF)是一种用于构建Web应用程序的新标准。JSF非常简单,是一个定义良好的编程模型。利用这个技术,开发者通过在页面内组合可重用的UI组件,在把这些组件和应用的数据源相连,路由客户产生的事件到服务器端的事件处理器进行编程。JSF处理了所有幕后的复杂工作,使得开发者把关注重点放在应用代码上。

3MVC框架的比较分析

对于Struts来说,由于许多问题已经被解决,使用它开发容易。HTML标签是它最优秀的地方。Struts是目前Java Web MVC框架中不争的王者。经过长达五年的发展,Struts已经逐渐成长为一个稳定、成熟的框架,并且占有了MVC框架中最大的市场份额。但是Struts某些技术特性上已经落后于新兴的MVC框架。面对Spring MVC、Webwork2这些设计更精密,扩展性更强的框架,Struts受到了前所未有的挑战。但站在产品开发的角度而言,Struts仍然是最稳妥的选择。

Spring作为一个轻量级的控制反转( IOC) 和面向切面(AOP)的容器框架已经非常优秀,如果非要谈论其不足,Spring框架的开放性可能会给它带来一些不好的因素,另外它的控制器过于灵活,缺少一个公用控制器。

WebWork结构简单易于扩展,标签库易于定制,拦截器也非常出色,但它的文档示例少,客户端验证技术不成熟。

Tapestry技术过于复杂,学习难度高,实现很不容易。这样就算你掌握了这种技术,仍然不能够把整个Web层做出来,还需要掌握其他很多相配合的技术,然后整合一个Web层的完整框架出来。

相对于以上几种框架技术,我个人更看好JavaServer Faces,抛开JSF是标准而非一个简单的open source framework,笔者认为,JSF将是未来发展的主流,因为软件开发“工业化”不可避免的是未来发展的方向。

4SSH的体系架构

SSH即Struts2+Spring+Hibernate,表现层的开源Struts2,数据持久层的Hibernate框架以及中间层的Spring框架,这三者构成了当前主流的开发J2EE应用的轻量级框架组合,使用Struts2架构作为了整个系统的基础框架,它负责了MVC模型中各层的分离,使项目的可扩展性大大增强,提升了开发效率,降低了维护成本。Hihernate作为持久层上的“对象-关系”映射轻量级组件,对持久层进行了轻量级封装,降低了程序的复杂度,减轻了开发的负担。中间业务逻辑层由Spring支持,Spring作为一个优秀的轻量级框架,具有强大的应用功能及灵活性,非常适合中间层平台。三个框架的组合将在web企业开发中有广阔的发展空间。

5结束语

随着技术的进步,各种Web框架的功能必将不断发展和完善。对于业务逻辑较简单的系统,开发人员可以根据项目的特点选择合适的框架作为基础进行开发。对于业务逻辑复杂的系统,开发人员可以充分利用各框架的优势进行整合开发,从而提高系统的性能和开发效率。

参考文献:

[1]强勇军,杨春.基于MVC的J2EE应用开发分析与比较.实验科学与技术,2008,(6).

[2]叶加青.Spring框架技术的应用.计算机时代,2009,(10).

[3]秦海鸥,蔡秋枫.Struts、Spring和JSF框架的比较与分析.科技广场,2009,(7).

[4]叶显中,刘晓燕,周绍景.基于J2EE平台的MVC框架的研究.工业控制计算机,2010,(4).

第2篇:mvc框架范文

摘 要  mvc设计模式是基于j2ee的web应用开发的首选模式,当前许多流行的框架也都是基于mvc设计模式的。本文简要介绍了mvc设计模式和struts框架,并提出了一种基于mvc模式的新型web应用开发框架——webframework,并对该框架的各个层次的组成、功能进行了详细的描述。     关键词  mvc设计模式; j2ee;框架; struts   0  引言     随着开源软件的兴起,各种框架也纷纷出现,如apache 的开源框架struts就是典型的代表。在实际软件开发中运用这些框架,大大降低了j2ee开发的复杂度和难度,降低了开发成本。但是这些框架也有不足的地方,如难于掌握,配置复杂等等。本文研究的目的在于设计出一种简单易行的web开发框架——webframework,webframework结构清晰,易于理解,增加系统的可扩展性,可维护性,降低开发成本。 1 mvc设计模式     基于j2ee的web应用系统,多数都利用mvc模式来实现其体系结构。mvc(model-view-controller)是八十年代为编程语言smalltalk-80发明的一种软件设计模式。mvc模式将交互式应用分成模型(model)、视图(view)和控制器(controller)三部分[1]。模型是指从现实世界中挖掘出来的对象模型,是应用逻辑的反映。模型封装了数据和对数据的操作,是实际进行数据处理的计算的地方。视图是应用和用户之间的接口,它负责将应用显现给用户和显示模型的状态。控制器负责视图和模型之间的交互,控制对用户输入的响应响应方式和流程,它主要负责两方面的动作:把用户的请求分发到相应的模型;将模型的改变及时反应到视图上。mvc将这些对象分离以提高灵活性和复用性。mvc模式的结构如图1所示:

图1 mvc设计模式的结构 2 struts框架     struts是apache基金会jakarta项目组的一个open source项目,它将servlet2.2和jsp1.1标记用作实现的一部分,它由一组相互协作的类、servlet和jsp标记,组成一个可重用的系统设计。它能够很好地帮助java开发者利用j2ee开发web应用。它将设计模式中“分离显示逻辑与业务逻辑”的能力发挥的淋漓尽致。因此,越来越多的大型的web应用项目的开发都纷纷采用struts框架,或者借鉴struts架构设计,进行基于mvc模式的应用系统的开发。 struts的工作原理如图2所示:

 图2  struts 的工作原理     struts的优点主要体现在两个方面:表单验证和页面导航。表单验证解决了请求数据的验证问题,增强了系统健壮性。而页面导航使系统的业务流程脉络清晰,系统各部分之间的联系可以通过配置文件反映出来,从而在一定程度上简化了系统以后的维护工作[2]。 但是struts也存在一些不足:     1)陡峭的学习曲线。taglib是struts的标记库,如果能灵活运用,能大提高开发效率,但对初学者来说,却需要一个持续学习的过程,增加了系统的开发成本[3]。     2)增加了系统的复杂度。业务层和表现层之间的耦合度太高,使得开发人员无法专注于表现层的设计和实现。     3)没有对表单数据前端验证提出方案,不利于在大型系统中使用[2]。     4)配置文件过于复杂繁索,随着系统规模的增大,struts-config.xml越来越庞大,维护也变得越来越困难。 3  webframework框架     针对struts框架的以上不足之处,本文提出webframework框架,与struts框架相比,webframework更简单易行,它通过简化表现层的设计,降低开发难度,节约开发成本;使用vo(value object)作为数据传递的方式,降低系统复杂度;运用简单的浏览器端表单字段数据验证,提高系统的运行效率;简化的配置文件,便于系统的维护。 设计目标     遵循j2ee规范,基于多层分布式应用软件开发框架,分布式的层次构架方式可以提高软件系统性能上的可扩展性,从长期的角度上保障了客户对当前的软件投资;实现软件系统在异常情况下也可以正常地提供服务,提高软件系统的稳定性;各个构架层次逻辑分离,有利于软件开发过程中团队成员的协同工作,提高生产效率。 3.2  框架结构     在设计策略中,将软件系统从构架上分为数据层、业务逻辑层和表示层,主要集中在业务表示与业务逻辑层。将普通三层架构的表示层细分成视图格式层和表示控制逻辑层。表示层涉及基于“瘦客户”技术的用户视图格式服务器端表示和相应的交互式控制逻辑。视图格式层,只保留了构建客户端用户视图必要的显示格式和事件触发;而在表示控制逻辑层则如名称所描述的那样,实现了人机交互所需控制逻辑和部分业务会话逻辑,再加上贯穿所有系统逻辑层的业务实体,则构成了以mvc模式为核心的表示层架构,将显示格式、显示控制逻辑、模型数据三部分有效地分隔开来,大大加强了系统架构的可扩展性和应用子系统的可插拔性。     业务层细分成业务会话层和业务持久化层。业务层集中在业务流程中处理逻辑的组件化封装,且与数据层平台和外部系统无关。业务会话层,侧重于业务活动,将一项业务的所有活动事务性地封装起来,也确保业务流程处理的一致性和高效率;而业务持久化层则是为业务会话层提供支持,提供业务数据的持久化操作,在业务与数据库之间建立分离作用的中间层,构成松耦合的架构。     本分层模型中实现了mvc设计模式。其中,servlet组件对应于mvc中的控制器(controller)部分,jsp及browser对应于视图(view)部分,而会话外观、逻辑bean及值对象则对应于模型(model)部分。其结构图3所示: 3.2.1 数据层     (1)层定义     数据层对数据进行管理,并向业务逻辑层提供标准化的开放访问接口。     数据层目前主要提供两种形式的服务方式:数据库方式和文件方式。数据库主要提供业务操作数据等具有明显结构化特性的数据的存储和访问服务;文件主要提供包括扫描文档图像、传真、照片、计算机生成的报告、字处理文档、电子表格、演示文稿、语音和视频片段等非结构化数据的存储和访问服务。     主要功能:数据创建、数据存储、数据查询、数据更新、数据删除、数据安全、事务支持、数据备份/恢复。  

   (2)与其他层接口     1)数据库方式的数据层面向业务逻辑层提供数据库访问服务接口,业务逻辑层通过jdbc协议访问数据库服务。     2)文件方式的数据层面向业务逻辑层提供文件级的访问服务接口,业务逻辑层通过操作系统本身提供的文件访问api访问文件数据。

图3 myframework框架结构图 3.2.2  业务逻辑层     (1)层定义     业务逻辑层接受从表示层输入的用户请求,将其转化为业务逻辑过程能够理解的方式,根据特定的业务逻辑有序地向数据层发送数据请求,并将数据层返回的数据解释及组合成用户所需信息,返回给表示层,是整个应用软件系统中业务逻辑的实现和处理核心。业务逻辑层运行在基于j2ee应用服务器的ejb及web容器中。     (2)组件定义     业务逻辑层包含会话外观(session façade)、逻辑bean(logic bean)和和数据存取bean(data access bean)等三个逻辑组件。     1)会话外观     提供了面向表示层的统一的业务逻辑调用接口;是数据存取事务的边界,所有数据存取事务都由会话外观进行管理,即会话外观负责数据存取事务的开始和关闭。 业务逻辑完成方式:通过调用逻辑bean实现业务逻辑。     2)逻辑bean     提供了业务逻辑具体实现;具有可复用性:可以直接被会话外观调用,实现会话外观所需的业务逻辑;可以被其他逻辑bean调用,此时此逻辑bean作为一个更复杂的业务逻辑的一个组成部分。 业务逻辑完成方式:可以通过调用其他的逻辑bean实现相对复杂的业务逻辑;可以直接调用数据存取bean完成相对简单的业务逻辑。     3)数据存取bean     提供了数据层的访问接口;不负责管理事务,它只是被动的使用调用者传入的事务环境; 与数据库表的映射方式,通常采取单个数据表对应单个数据存取bean的映射方式,由单个数据存取bean包含对应单个数据表的所有相关数据访问操作。     4)值对象     包含业务逻辑实体的属性,不包括业务逻辑实体的操作;是表示层和业务逻辑层数据交换的主体单元,和会话外观一同组成了完整的业务逻辑实体,提供了业务逻辑层面向表示层的统一接口;与数据库表的映射方式,通常采取单个数据表对应单个值对象的映射方式;可以与不同类型值对象以聚合方式组成新的值对象。     (3)与其他层接口     1)由会话外观提供面向表示层的业务逻辑调用接口,表示层通过java本地调用访问业务逻辑层。     2)数据存取bean通过jdbc访问数据库服务。     3)数据存取bean通过操作系统提供的系统服务访问文件数据。 3.2.3  表示层     (1)层定义     表示层接受用户提交的输入请求,通过对业务逻辑层的访问,获得并向用户输出可视化响应。     (2)组件定义     采用mvc设计模式,由servlet提供页面请求和请求响应的总体控制,jsp和浏览器提供请求结果响应的可视化显示。     1)servlet 接收所有用户由通过浏览器提交的业务请求,并合成相应的值对象,访问业务逻辑层完成业务逻辑实体的业务处理;将业务逻辑实体的变化以值对象的方式通知并转向相应的jsp。     2)jsp 根据servlet告知的值对象,合成请求响应结果的最终输出格式化文本(html);将合成格式化文本以网络协议的方式发送给提交业务请求的用户浏览器。     3)浏览器 提供用户输入业务请求数据的输入界面,数据验证通过后提交业务请求;接收业务请求响应的html文本,将业务请求响应结果以可视化的访问呈现给用户。     4)webservice 是业务逻辑层对外部系统提供服务的边界和接口,完成和外部系统的集成和交互。     (3)与其他层接口     1)servlet通过java本地调用访问业务逻辑层。     2)浏览器通过http/https协议向表示层提出业务请求并接收表示层的业务响应。 3.3  框架的配置文件     (1)系统初始化配置文件:web.xml     该文件是controller专属的配置信息文件。控制器在第一次启动时需要从这个文件载入系统的配置信息。文件内容如下: <servlet>   <servlet-name>controlservlet</servlet-name> <servlet-class>mytools.control.web.controlhan-dler</servlet-class> </servlet> <servlet-mapping> <servlet-name>controlservlet</servlet-name> <url-pattern>/controler</url-pattern> </servlet-mapping>     (2)页面导航配置文件:web_config.xml <?xml version="1.0" encoding="gb2312"?> <web-config> <forwards>          <forward name="xx" path="filename.jsp"/>       ………… </forwards> <action-mappings>           <action name="xx" type="actionclassname" method="methodname"/>     …………   </action-mappings> </web-config>       web_config.xml文件是整个框架的重要部分,它控制了系统执行时的执行流程。该文件包括两种元素:<forwards>和<action-mappings>,其中<forwards>元素用来设置当前要转向调用的jsp页面,而<action-mappings>则设置了当前用户提交的操作要调用哪一个action 类,及当前类中的哪个方法。 4 总结     webframework框架已经在一个航运管理项目中经过测试和检验,实践证明,此框架在中大型项目开发中,可以缩短开发周期,提高开发效率,系统运行稳定,易于维护。 有关应用开发框架的研究是一个不断深入,逐步完善的过程,在对webframework不断推广试用的基础上,还将进一步扩展其功能,使其应用领域更加广泛。 参考文献 1孙卫琴.精通struts:基于mvc的java web 设计与开发.北京:电子工业出版社,2004.95~127 2 房丽娜,唐胜群,曾奕,李宁.基于web应用的mvc架构实现——awdf.计算机工程,2005.5,第31卷 第10期 89~90 3 耿刚.一种基于j2ee平台的web应用框架的设计、实现与应用.西安电子科技大学,2004.1

第3篇:mvc框架范文

关键词:MVC设计模式;B/S架构;Struts 2.0; Xml文档解析;J2EE

中图分类号:TP311文献标识码:A文章编号:1009-3044(2011)10-2308-02

Key Technology Research of Web Framework Based on MVC Pattern

LI Jun-jun, FU Hong, ZHANG Li, JIANG Zu-xin

(College of Information Science and Engineering, Henan University of Technology, Zhengzhou 450001, China)

Abstract: There is a growing emphasis on B / S network applications, MVC Pattern is widely used in Web application development. People design many Web Frameworks which are based on MVC Pattern in order to save software development time. By studying the achievement of MVC mechanism in Struts 2.0, summarizes a series of key technologies needed when design Web Framework based on MVC Pattern.

Key words: MVC design pattern; B/S architecture; Struts 2.0; Xml document parsing; J2EE

模型-视图-控制器(MVC,Model-View-Controller)最早是smalltalk语言研究团提出的,应用于用户交互应用程序中。随着基于B/S架构的网络应用的高速发展,MVC设计模式在Web开发中找到了用武之地,MVC开发模式可以实现分离数据和数据表现,让开发人员开发一个可伸缩性强,便于扩展的控制器,来维护整个流程。

面向对象技术的出现和应用大大提高了软件的重用性和软件的质量。Java语言作为一种面向对象语言,为Web开发提供了强有力的支持,Sun公司提出的J2EE可简化且规范应用系统的开发与部署,进而提高可移植性、安全与再用价值。Struts 2.0框架就是基于J2EE和MVC设计模式开发的一个优秀Web开发框架。

1 MVC模式的设计思想

MVC的设计思想就是:开发人员将一个系统的输入,输出,流程处理编程方式转换为模型层,视图层,控制层三层编程方式,从而使整个系统责任明确,接口清晰,加快设计开发过程。一般Web框架如图1所示。

2 Web框架设计流程

Web框架设计流程图如图2所示。

本文采用目前广为应用的J2EE技术作为开发框架的主要技术。开发的基本思路是:

View采用Jsp和JavaScript技术,Controller层采用Servlet和Xml技术,Model层采用Java和JavaBean技术。

3 WEB各层设计关键点

每一个框架都是考虑了最通用的情况,并不一定适用于所有的项目。这要求开发人员对框架有深刻的理解,优秀的开发人员需要跳出具体的框架,站在更高的层次上把握框架,从设计理念出发去具体对待框架,在当前框架不能满足项目需求的时候,能够修改框架以便适合自己的项目需求。本文通过一个Web框架的设计来具体分析相关技术。其结构如图3所示。

3.1视图层设计

在视图层采用JSP技术,因为JSP可以使用JavaScript,JavaBean和自定义标签等,这些技术组合在一起,可以获得灵活的数据组合方式。

1) 为了方便管理,可以在所有的JSP页面的顶部添加一个页面名称。

2) 为防止代码混乱,可以在框架所有的JSP页面中统一设置一种编码方式,即可以在JSP页面的顶部添加如下代码:

3) 通过在 Web.xml中定义Servlet的请求方式,可以将所有JSP页面的请求都转入Servlet进行处理,这样很容易通过request,response实现JSP和Servlet之间的数据转化。为防止要获取的数据量比较大带来的负面影响,可以在Servlet中将所有传递到JSP页面中的数据存储在一个Map中,这样页面只需从request中取出Map,剩下的数据就可以从Map中获取,加快页面的处理速度。

4) 为了统一整个应用的风格,对于窗口的打开方法,可以在系统中将其抽取出来,定义一个公用方法。一般而言,会对要打开的URL,窗口名称,窗口宽度和高度进行设定,而其他属性保持不变。如下面方法定义:

functionopenWindow(name, url, width, height){

var screenWidth = screen.width;

var screenHeight = screen.height;

var w;

w = window.open(url, name , "width="+width+",height="+height+",

menubar= no,resizable=yes,toobar=no,directories=no, location=no,

scrollbars=yes,status=yes,copyhistory=0");

w.moveTo((screenWidth-width)/2,( screenHeight-height)/2);

w.focus();

}

代码说明:

传入的参数分别表示:窗口名称,要打开的URL,窗口宽度和高度。

w.moveTo()的意思是:打开的窗口显示在屏幕中心。

w.focus()函数的意思是:使焦点在打开的窗口上。

3.2 控制层设计

控制层主要用来转发从视图层传来的数据和请求到相应的模型层,因此实现它的最好方法是使用Servlet。

一般在Servlet的低版本中,在Servlet中要同时实现解析配置文件,对页面传来的值进行转化,调用相应的函数,以及返回结果处理后的页面等。这样使得控制器设计显得很臃肿,也不利于代码的维护。随着java版本的不断提高,在Servlet 2.3规范中引入了Servlet过滤器,这种机制提供了在转入Servlet之前进行预处理的功能。

Servlet过滤器其实是面向方面编程思想的一种实现方式。在实际应用中也可以利用Java提供的动态技术来实现简单的AOP,并利用配置文件实现动态“插拔”。

在控制器的设计中,返回页面的映射方式,表单提交方式和多动作处理方式十分重要,这三方面良好的设计可以很好改善框架的功能。

返回页面的映射设计可以采用Xml技术方便的进行映射配置,只需在配置文件中指定一个forward元素,而且在映射关系改变的时候,只需修改配置文件就可以了。页面之间元素的传递也很重要,一般可以使用HashMap来实现,但是我们要把页面表单直接放入HashMap中会降低页面值获取与控制器之间的耦合性。可以通过将表单元素值封装成一个VO(值对象),将VO放入HashMap中,使用时从HashMap中取出,而VO与Action关系可以通过Xml文件惊醒配置。而多动作的处理方式也通过Xml文件来实现.

3.3 模型层设计

模型对象对应了商业规则和商业数据,即分为业务处理对象和业务实体对象。业务处理对象封装了具体的处理逻辑,调用业务逻辑模型,并且把响应提交到合适的视图组件以产生响应。业务实体对象可以通过定义属性描述客户端表单数据。所有业务实体对象都EntityBase派生子类对象,业务处理对象可以直接对它进行读写,而不再需要和request、response对象进行数据交互。通过业务实体对象实现了对视图和模型之间交互的支持。实现把"做什么"(业务处理)和"如何做"(业务实体)分离。这样可以实现业务逻辑的重用。MVC没有现成的设计方法来指导Model的设计。但是良好的Model层设计可以提高整个框架的可扩展性,也有利于模型的重构和可重用性。

我们可以设计一个接口,让所有的模型层对象都实现这个接口,以统一的方式进入模型层的处理,实现业务规则的调用,完成用户的请求。对于视图层传入的数据,可使用在控制层中转化的得到的VO;对于业务逻辑可以放在DAO中处理。

4 结束语

基于MVC模型的Web框架,只要合理设计三层之间的关系,可以有效提高系统的可重用性,可以有效提高系统设计效率,缩短开发周期。

随着新技术的不断发展,为基于MVC模式的Web框架设计提供了更强的技术支持,其功能将日益完善。

参考文献:

[1] Camma E.Design Patterns:Elements of Reusable Object-Oriented Software[M].Addison Wesley,1994:5-20.

[2] Husted T.Struts In Action[M].Manning Publication Co.,2003.

第4篇:mvc框架范文

【关键词】mvcjava应用程序框架实践探索

一、框架的设计

1、设计目标

设计目标是完成应用程序通用的部分,这样程序员就可以将自己的精力和注意力放在具体程序的业务逻辑上,而和业务逻辑没有关系的部分就可以被忽略。框架使用的是MVC模式,该模式可以把数据的显示和数据分开。对于程序员来说,其工作就是把核心数据放到表示数据的类之中,此外将相应的方法添加到其中。从本质上将,框架属于完整的程序,因此其运行不需要添加一行代码。关于框架支持的应用程序的分类:(1)单文档单视图。也就是说在应用程序中存在一个文档。此外,只有一种类型的一个视图。(2)多文档类型。在同一个应用程序实例中,应用程序可以将多个文档框架窗口打开。

2、MVC 模式的使用

之所以使用MVC 模式,是因为其具有以下优点:(1)MVC 模式和该框架的设计目标相符。(2)可以建立和使用多个视图。(3)视图与控制器的可接插性。(4)模型的可移植性。(5)MVC模式有很多的应用,比如:java的可视化组件就对其进行了使用。

3、类的划分

应用程序框架中的类主要包括以下几个方面:应用程序类、文档类、视图类、子框架窗口类、事件类、框架窗口类、状态栏类、工具栏类、菜单栏类等。

4、类之间的关系

文档类,视图类和控制类之间的关系如图1所示。

图1 文档类、视图类和控制类之间的关系

应用程序类和文档管理类的关系见图2。

图2应用程序类和文档管理类的关系

视图类和子框架窗口类的关系见图3。

图3 视图类和子框架窗口类的关系

二、框架中消息流程

命令消息的流程。框架中的命令消息分为:数据操作命令消息和框架命令消息两类。框架命令消息:在原始框架中,有新建文档命令,将文档命令打开,对文档命令进行保存,另存文档命令和退出程序命令。数据操作命令消息:消息流程是:用户操作控制类对象框架窗口子框架窗口视图文档视图。

"激活"消息流程。一定要让视图的视觉状态和在框架中真实状态一致。当视图处于活动状态时,需要满足以下几个条件:(1)视图处于接受操作的状态。(2)和视图有关的子框架窗口处于活动状态。(3)文档管理器表示活动文档的成员指向该文档。激活"消息的传送流程设计见图4。

图4"激活"消息的传送流程设计

1、模板功能的实现

可以生成某个类实例的对象就是模板。一个模板可以生成若干个对象,也可以只生成一个对象。模板功能的实现思路:程序员需要先创建一个类的对象,之后将其注册到框架。在需要时,框架对该对象进行使用,这样就可以生成其他对象。

2、文档类的实现

文档类对数据的公共操作包括:新建文档,打开文档,另存文档,保存文档操作,关闭文档操作。文档数据的存取。文档类型不同,那么其中的数据也就有差异。因此,还没有一种方法把全部种类的文档的数据序列化到文件,因此需要提供这两个抽象接口。

3、视图类的实现

视图类的方法有:视图更新方法,接受激活消息的方法,关闭视图类实例的方法。此外,视图必须捕获激活事件。

视图类子类XxView的设计。第一步对父类的构造函数进行调用,第二步对数据成员变量、可视化组件实施初始化,最后把这些组件添加到视图之中。需要实现的方法是ViewMvc getInstance().

4、 文档管理类的设计

文档管理类可以被分为两类:(1)仅仅用于单文档模式,这一类只管理一个文档。(2)用于多文档模式。这一类可以管理多个文档。

文档管理类基类 DocumentManager的设计。面对对象理论主要强调的是针对接口进行编程,这样做对于系统的扩展和维护是十分有利的。在文档管理类的设计中使用该原则的目的是让单文档管理器和多文档管理器的差异对于框架透明。我们可以可以提取这两种管理器的共同操作,因此就可以形成一个接口。对这个接口我们命名为:DocumentManager。DocumentManager有:(1)新建文档接口。文档管理器主要对文档进行管理,比如:销毁、创建以及初始化等。因此,框架处理用户的"新建......"命令时,需要调用文档管理器的新建文档接口。(2)打开文档接口。文档的打开可以说是文档创建的一种方式,因此框架在响应用户"打开......"命令时,也会把这一任务交给文档管理器。此时,文档管理器就会打开文档。(3)关闭文档接口。文档的销毁即文档的关闭,因此当响应用户退出程序命令时,会对文档管理器进行委托,关掉全部的文档。(4)接收文档激活消息的接口。如果试图激活,那么和试图有关的文档此时也会被激活。该文档被激活的消息需要被发送到文档管理器,这样做的目的是方便让文档管理器激活这一文档。

结束语:

21世纪软件工业发展的一大趋势是软件构件化。目前,工业化的软件复用已经进化到了面向领域的应用框架。框架是一种可复用设计,主要表现形式是:构件实例间交互的方法。笔者对mvc的java应用程序框架的实践进行了分析和探讨,希望对大家有借鉴的意义。

参考文献:

第5篇:mvc框架范文

【关键词】 MVC 学生信息 管理系统

近年来,如何有效地管理学生信息,成为了各个学校面临的一个难题。学生的信息是多种多样的,其包含的数据量大,涉及的人员和部门广,并且需要随时更新。与此同时,学校在对学生信息的管理上也比较分散,不仅存在管理凌乱的现象,而且存在重复管理的问题,对学生信息的管理不能做到统一、规范和高效。

基于以上情况,本文提出了基于平台和MVC的架构,采用 MVC技术进行学生信息管理系统的设计与实现,希望能够对学生信息进行有效的管理,使得学生信息的管理更加快速、准确、方便。

1 MVC 框架

MVC是由微软官方提供的基于MVC架构模式的开发框架,是一个易于开发、易于测试、易于维护的框架,也是现今流行的一种MVC开发技术。在 MVC框架中,通过模型、视图和控制器的功能分离,充分地实现用户输入、业务制定和界面显示的独立。

从用户在浏览器中输入请求信息,到在页面获得处理结果,大致需要经过5个步骤。

(1)用户在浏览器中发出信息请求,向控制器发送相关的操作命令。

(2)控制器接收到请求命令之后,向模型请求获得有关的数据信息。

(3)模型根据请求将对应的数据信息返回给控制器。

(4)控制器将相关的数据信息发送到相应的视图。

(5)相应的视图将获得的数据信息返回到浏览器,显示给用户。

在 MVC的具体开发过程中,主要的工作是对控制器进行程序编写。因为控制器既要处理用户请求,又要实现与模型进行数据通信,以及向视图发送数据信息,控制器在模型、视图、控制器三者中处于一个中枢的位置。

3 学生信息管理系统的设计

建立学生信息管理系统,实现数据处理的统一、规范和高效,通过对学生信息管理系统的需求分析,希望能够探索出信息处理的最佳途径。

3.1 需求分析

学生信息管理系统主要是围绕与学生有关的数据信息进行处理的,应当具有登录管理、课程管理、学籍管理、成绩管理、德育管理等功能模块。

(1)登录管理模块:系统管理员设定每个用户的登录用户名和初始密码,并对用户名和密码具有修改和删除的权限;同时,系统用户登录系统之后也能够对自己的登录信息进行修改。

(2)课程管理模块:课程信息是属于稳定性比较强的一类信息,而且课程的开设与取消在学校的权力范围之内,系统管理员在系统中扮演学校的角色设置课程的基本信息,并对课程的相关数据进行处理。教师只能查看课程的基本信息。

(3)学籍管理模块:系统管理员根据学号为每个学生分配系统的登录信息。学生将个人资料信息按照学籍内容的要求输入到数据库,并根据实际情况对信息进行及时的修改,以确保信息的准确性。教师可在通过不同的条件查找学生的学籍信息,了解学生的基本情况。

(4)成绩管理模块:教师按照课程的考核要求进行不同方式的考试,考试结束后将学生的考试成绩输入到系统,对有错误的成绩数据进行编辑。学生参与课程学习并参加考试之后,能够查阅自己的成绩。

(5)德育管理模块:教师负责录入每位同学的德育评价等级,并对录入有误的评价等级进行编辑。学生能够查阅每月的德育评价等级,从而端正自己的日常行为。

3.2 功能设计

学生信息管理系统在实际的使用过程中,主要有三类用户:系统管理员、教师、学生,因此管理系统对应地分为三类用户端:系统管理员端、教师端、学生端。他们的功能权限分别是:

(1)系统管理员端:系统管理员在学生信息管理系统中的操作平台,系统管理员进入该平台后可以修改自己的登录密码,并进行登录信息管理和课程信息管理两个模块的操作。

(2)教师端:教师用户在学生信息管理系统中的操作平台,教师进入该平台后可以修改自己的密码,查看课程信息和学生的学籍信息,并进行成绩信息管理模块和德育信息管理模块的操作。

(3)学生端:学生用户在学生信息管理系统中的操作平台,学生进入该平台后可以修改自己的密码,编辑自己的学籍信息,并可查看考试成绩和德育评价信息。

4 学生信息管理系统的实现

本学生信息管理系统采用 MVC架构技术,主要开发语言为,数据库系统为SQL Server。

现以系统管理员端的课程信息管理功能的实现过程为例,介绍 MVC的开况。课程信息管理功能包括对课程信息的查询、添加、修改和删除。首先使用SQL Server创建课程信息表,包括字段课程编号、课程名称、课程学分、课程类别、考试性质、考试时间等。

(1) 模型(Model)的实现:定义一个 实体数据模型,数据来源于课程信息表。

(2)控制器(Controller)的实现:立一个控制器,用来实现课程信息管理模块的查询、添加、修改和删除的功能的。

(3) 视图(View)的实现:创建cshtml页面,用于显示课程的基本信息,并提供管理操作以及相关的超链接。

4 结语

本文根据学校在学生信息管理中存在的问题,提出了采用 MVC框架开发较复杂的学生信息管理系统,搭建了完整的基于 MVC框架结构的信息管理系统。学生信息管理系统的应用,给学校的学生信息管理工作带来了改变,实现学生信息管理朝着规范化、科学化、现代化的方向转变,提升学校的管理水平和工作效益。

参考文献

[1]贡博文.浅谈网站建设中MVC与三层架构技术[J].科技风,2013.

[2]周文红.基于 MVC框架的Web应用开发[J].计算机与现代化,2013.

[3]沈伟.基于Web的高职学生信息管理系统的设计与实现[J].泰州职业技术学院学报,2014.

作者简介

邓俊英(1981-),广东省佛山市人。大学本科学历。现为佛山市华材职业技术学校计算机中学一级教师。研究方向为计算机技术。

第6篇:mvc框架范文

>> 基于Jfinal+Shiro框架的Web应用系统开发研究 基于JFinal的社交网络研究 Javaweb软件开发框架技术介绍 JavaWeb开发的环境配置 基于JavaWeb的物流配送系统的研究 基于JavaWeb的MVC架构模式分析研究 基于Struts框架的Java Web应用开发研究 基于跨平台的移动应用开发框架研究 基于WEB开发框架的研究 基于MVC和持久框架的WEB开发框架研究 基于JFinal的小区物业管理系统的设计 基于JavaWeb技术的表单重复提交问题解决方案分析与应用 基于模块化设计的Web应用程序漏洞利用框架研究与开发 基于JQuery框架的web移动端快速开发技术研究与应用 基于 MVC6框架的Web应用开发研究 基于Java的数据库应用框架研究及开发 基于JQuery框架技术开发的WEB应用 基于XSLT和Struts的Web应用开发框架 基于MVC和NHibernate的开发框架研究 基于MVC模式的PHP开发框架研究 常见问题解答 当前所在位置:.

[2] 詹波.JAVA 极速WEB+ORM框架 JFinal [DB/OL].http:///p/jfinal.

[3] 夏艳秋,袁汝华.基于 JFinal 框架和 HTML5 技术的手机应用开发平台设计[J].计算机与现代化,2014(1):201-205,210.

[4] 胡启敏,薛锦云,钟林辉.基于 Spring 框架的轻量级 J2EE 架构与应用[J].计算机工程与应用,2008, 44(5).

[5] 刘军,戴金山.基于 Spring MVC 与 iBATIS 的轻量级 Web 应用研究[J].计算机应用,2006,26(4):840-843.

[6] 李峰,刘彦隆.基于 SSH 框架与 jQuery 技术的 JavaWeb 开发应用[J].科技情报开发与经济,2010(6):106-108.

[7] 许鑫,费翔林.基于 MVC 模式的应用软件开发框架研究[J].计算机工程与应用,2006,41(30):102-104.

[8] 苏晓波.Web 快速开发框架的设计与实现[D].武汉:华中科技大学,2010.

第7篇:mvc框架范文

[关键词] Model(模型)View(视图)Controller(控制器)MVC

一、MVC模式

将JSP页面中嵌入的流程控制代码和部分的逻辑处理代码提取出来,放到一个单独的角色中,这个角色就是控制器角色了。这样的架构就符合MVC架构模式,MVC即模型――视图――控制器(Model-View-Control)。

MVC架构有助于将应用程序分割成若干逻辑部件,使程序设计变得更加容易。MVC架构提供了一种按功能参各种对象进行分割的方法,其目的是为了将各对象间的耦合程序降至最低。MVC框架原本是为了将传统的输入(input)、处理(processing)和输出(output)任务运用到图形化用户交互模型中而设计的,但是,将这些概念运用到基于Web的企业级多层应用领域也是很适合的。

图1MVC模型、视图、控制器的关系图

在一个MVC架构中,一个应用被分成三个部分,模型(Model)、视图(View)和控制器(Control)。

模型代表应用程序的数据以用于访问控制和修改这些数据的业务规则。当模型发生变化时,它会通知视图,并为视图提供查询模型相关状态的能力。同时,它也为控制器提供访问封闭在模型内部的应用程序功能的能力。

视图用开组织模型的内容。它从模型那里获得数据并指定这些数据如何表现。当模型变化时,视图负责维护数据表现的一致性。视图同时将用户的请求通知控制器。

控制器定义了应用程序的行为。它负责对来自视图的用户请求进行解释,并把这些请求映射成相应的行为,这些行为由模型负责实现。在独立运行的GUI客户端,用户的请求可能是一些鼠标单击或是菜单选择操作。在一个WEB应用程序中,它们的表现形式可能是一些来自客户端GET或POST的HTTP请求。图1描述了在MVC应用程序中模型、视图、控制器三部分的关系。

在这种开发模式下,控制器的角色由Servlet实现,视图的角色由Jsp页面实现,模型的角色由JavaBean来实现,该模型的架构图如图2所示。

图2JSP开发模型

Servlet充当控制的角色,它接受请求,并且根据请求信息将它们分发给适当的JSP页面来产生响应。Servlet控制器还根据JSP视图的需求生成JavaBean的实例并输出给JSP环境。JSP视图可以通过直接调用JavaBean实例的方法或使用和动作元素来得到JavaBean中的数据。

二、基于MVC框架的论坛功能的实现

论坛是电子商务网站中一种常见的功能,它为上网用户提供了一个自由的讨论区。用户可以根据需要在论坛上发表文章,提出问题并表达自己的观点,俗称发帖子或灌水。与此同时,上网用户也可以在论坛中浏览其他人发表文章,并能对该文章进行回复。一个典型的论坛系统一般应提供如下功能:会员管理、讨论区文章查阅、发表新文章、后台管理。

运用MVC框架实现论坛,首先把应用分解为模型、视图和控制器来实现,这样就将业务逻辑和表现层分开,提高软件可扩展性和良好的逻辑性,改变了传统Web开发设计模式。下面将以论坛中用户登陆为例按照MVC架构来详述实现过程。

1.创建视图组件

在视图中主要包括两个组件:用户登录页面Login.jsp,登录失败页面error.jsp;是用户登录失败后显示的页面。它们都保存在Web应用目录xxx下。

2.创建模型组件

模型组件文件UserInfo.java 是处理业务逻辑的JavaBean, 封装了与论坛用户相关的所有信息,同时也定义了所有与论坛用户信息处理相关的方法。例如检查用户身份的方法以及查找、删除、编辑、存储用户信息等。通过Action类派生的子类LoginAction访问UserInfo.java实现对业务逻辑的处理。注意业务逻辑层对应的类所在的包应该部署在xxx/WEB-INF/classes下。

3.创建控制器组件

控制器组件作为整个MVC架构的控制中心,包括了ActionServlet、Action Bean、ActionForm Bean、以及相关配置文件web.xml及资源包。

(1)声明及定义LoginActionForm.java

该Javabean用于获取用户登录页面提交的表单数据。注意ActionFormBean中属性名称一定要对应用户表示层JSP页面中的表单元素名称及超链接参数名。

(2)声明及定义LoginAction.java

LoginAction负责处理客户端提交请求,其主要功能是依据接收到的不同请求,通过LoginActionForm中得到对应的提交表单数据,调用业务逻辑层中对应的UserInfo.java进行处理。最终将结果传给用户表示层JSP页面,显示在用户面前。

(3)配置文件定义

web.xml主要实现了对ActionServlet进行配置如下。

ActionServlet

< servlet-class>ActionServlet

ActionServlet

/servlet/ActionServlet

三、结束语

第8篇:mvc框架范文

【关键词】高校外事业务 PHP MVC CodeIgni ter

进入新世纪以后,我国高校教职工、学生出国交流访问的活动日益增多;请进国外专家、举办国际会议等方面的活动也日益频繁。但是我国一些高校的外事部门还处于传统的管理方式之下,传统的管理方式指的是人工进行外事申请表的填写、提交与审核的方式。传统的管理方式存在着用户申办时间成本高;外事工作者业务工作量大、工作繁琐、人工处理易出错等问题。为了解决以上不足,本文设计了一个基于MVC模式的高校外事信息系统。系统方便了各个用户进行相关外事业务的申请;实现了外事业务的在线管理;实现了信息与文件的整合;方便外事部门管理员进行文件统计、报表生成等工作。

1 关键技术

1.1 MVC模式

MVC(Model―模型;View―视图;Controller―控制器)是一种软件设计典范,其有助于开发复杂的应用程序。MVC框架可以使数据层与表现层分离并通过调用控制逻辑来联系数据层与表现层。通俗的来讲MVC框架设计使得应用程序的输入、输出和处理分开并通过控制逻辑结合起来,进而形成一个完整的Web应用。

MVC的开发模式适合用在较为复杂的项目尤其是那些存在大量数据并且业务逻辑复杂的项目,MVC模式的引入无疑会在软件的开发效率、健壮性、可维护性做成很大的贡献。

1.2 PHP的Codeigniter框架

PHP是一种通用开源脚本语言,其借鉴了C语言、Java和Perl的一些特点。PHP是运行在服务器端的脚本语言,它可以运行在Linux、Windows等操作平台,并且支持MySQL、Microsoft SQL Server等主流数据库。

CodeIgniter是一个比较流行的轻量级PHP框架,其目标是在最小化,最轻量级的开发包中得到最大的执行效率。CodeIgniter为开发者提供了一套完整的应用程序开发框架和工具包,这使得开发人员代码的编写量大大减少从而更专注于核心模块开发从而提高项目开发效率。

2 外事信息系统系统设计

2.1 系统需求分析

由于传统外事管理模式的诸多不足以及外事业务办理数量的不断增多,高校迫切需要建立起一套完整、可靠、高效的外事信息系统,本文设计的外事系统就是为某大学国际交流处构建的。经过对某大学国际交流处的调研结合已有的系统开发经验可得出系统主要需求如下:

(1)用浏览器实现在线办公。实现各单位、个人、国际处网上协同办公,使得所有的外事申请都可以在线填写、在线管理,外事工作人员可以实现在线审核。

(2)实现外事申请报表的自动与管理,减轻外事人员工作负担。

(3)实现外事相关申请的数据统计功能,以便对外事项目进行分析、研究。

(4)实现外事资讯、外事资料的管理。

2.1 系统功能模块设计

通过对系统的业务需求分析我们可以将系统功能模块分为:请进专家模块、人员派出模块、国际会议模块、外国专家项目模块、文件管理模块五个模块。

(1)人员派出模块。主要包括教职工出国模块、学生出国模块。其中教职工出国模块包含:短期单位公派出国、长期单位公派出国、短期国家公派出国、长期国家公派出国四个外事业务流程。学生出国模块包含:短期出国、长期出国、长期国家公派三个外事业务。

(2)请进专家模块。主要包括外国专家请进模块、非外籍专家请进模块两个子模块,其中外国专家请进模块包含长期请进外国专家与短期请进专家两个不同的外事业务。本模块的主要实现请进专家申请表的在线填写、管理等。

(3)外国专家专项目模块。其是进行外国专家项目的申请的模块。

(4)国际会议模块。其是用于教师或学校部门为单位进行国际会议申请的模块。

(5)文件管理模块。主要包括一下部分:文件报表管理;公告信息的管理;文件统计管理;人员信息管理。

2.3 系统MVC模式设计

本文所设计的高校外事信息系统是采用PHP的Codeigniter框架进行开发,CodeIgniter 是一个典型的MVC 框架。在Codeigniter中,Model、View、Controller每层都有一个独立的文件夹存放其相应代码,其均位于根目录的./application下。

(1)Model是用来存放和数据库打交道的模型类,在Model中可以对所有与数据库有关的操作的方法进行封装,如保存外事申请表、读取特定ID下的申请表等。

(2)View表示视图,视图通过一个控制器来调用,并最终渲染到Web浏览器上。在Codeigniter中几乎所有的HTML代码都位于View中,所以视图层是用户浏览器接触的界面。如:教职工、学生用户办理外事业务申请的界面;各级管理员进行业务审核管理、文件报表管理的界面等。

(3)Controller是一个控制器。Controller可以装载模型、核心库、插件、辅助函数,以及任何处理特定请求所需的其它资源。Controller通过$this->load->library()的方法引入自带的库类;通过$this->m_model->function()的方法引入Model中的数据库信息;通过$this->load->view()的方式引入视图并将相应的数据渲染到浏览器界面。

3 外事信息系统系统实现

3.1 Codeigniter框架的系统实现机制

如上文叙述的,Codeigniter框架采用了典型的MVC设计模式实现了数据层、表现层、逻辑控制层三层不同的分工,实现了代码的完全分离。在CodeIgniter框架下系统的实现过程可如图1所示。

其中虚线代表返回值的传递信息,实线代表函数的引用。即用户通过浏览器界面的View向Controller下达命令(传达相应的信息),Controller通过函数调用Model中数据库数据并通过函数传递给View,并最终由View表现层把数据呈现给用户。下文将重点介绍数据层与逻辑层的实现。

3.1 数据层实现

在高校外事信息系统中,以教职工出国(境)为例,教职工出国(境)数据库可用表offer_teacher表示。Model用于存

放操纵数据库的方法,如表示保存数据的方法saveInfo(),删除数据的方法delete(),查询数据的条数的方法getNum()等。以保存方法saveInfo()为例,其关键代码如下:

3.2 逻辑层实现

4 结语

高校外事信息化是高校信息化的重要组成部分。本文构建的基于MVC模式的高校外事信息系统提升了高校外事部门工作人员的工作效率、方便了广大的师生办理外事业务。

MVC的开发模式使得输入、输出、逻辑控制代码分离,可使得开发者分工更加明确,同时提高了代码的重用性,并使得系统后期易于维护。PHP模式的CodeIgniter框架使得开发者能更专注于模块开发,为系统的快速、高效开发提供了保障。

本系统已经投入实际使用,在使用中系统运行良好、出错率少,可以很好的满足广大师生以及外事部门工作人员的需要。

通讯作者:孟超英(教授)

参考文献

[1]杨彦侃,谭心.一种基于 CodeIgniter 框架科研论文管理系统的研究与实现[J].计算机应用与软件,2012.

[2]蒋建华.高校外事工作机制探索――兼论SWUPE外事工作改革[D].重庆:西南财经大学,2009

[3]边霞.基于 MVC 的文件备份后台管理系统的设计与实现[J].计算机工程与设计,2011.

[4]Luke Welling. PHP和MySql web 开发[M].北京:机械工业出版社,2011.

[5]杨桂丽,黎敬涛.基于PHP的一个家庭理财系统的设计与实现[J].计算机应用与软件,2013.

[6]高硕.出国培训管理系统的设计与实现[D].天津:天津大学,2009.

作者单位

1.中国农业大学信息与电气工程学院 北京市 100083

第9篇:mvc框架范文

关键词:Struts2; Spring; Hibernate; MVC

中图分类号:TP311文献标识码:A文章编号:1009-3044(2009)35-9957-02

Studies of on-line Supermarket System Based on SSH

ZHENG Bu-qin1,2, JIANG Li-qun1, ZHANG Yu-hui2

(1.College of Computer Science, China University of Mining and Technology, Xuzhou 221008, China; 2.Suqian College, Suqian 223800, China)

Abstract: This essay, firstly,through requirement analysis of the on-line supermarket system, gives the system functional modules, Secondly, introduces the related technologies of the SSH’s integrated framework,Finally , explains the detailed application of the Integrated framework in the on-line supermarket system.

Key words: struts2; spring; hibernate; MVC

随着Internet的不断发展,网上购物已成为一种时尚。电子商务的双向信息沟通给消费者提供了更多选择,灵活的交易手段为用户带来了更好的便利性。网上超市就是一个典型的电子商务系统。网上超市经营者可以以最快的速度将商品分类和上架。用户可以不受时间和空间的限制,查看检索商品的信息和购买商品。这种快速便利的交易方式,大大提高了企业的生产效益,降低了企业成本,有助于企业更快更好的发展。

1网上超市的总体分析和设计

1.1网上超市的需求分析

对于传统超市,消费者购物,挑选、交换、比较购买商品。超市管理员要对商品进货、分类和统计,对过期商品要进行相应的处理。网上超市不同于传统超市,但也应能完成普通超市的一般功能。网上超市用户可以分成两种类型,一类是一般会员可以注册更改用户信息,查看和检索商品信息、购买商品。一类是系统管理员,可以对会员信息进行管理,可以对商品进行增加、分类和统计。

1.2 网上超市的功能设计

根据需求分析可知,可以将网上超市系统可以分为前台用户模块和后台管理模块。前台用户模块可以分为:会员登录注册、商品浏览、商品查找、购物车、订单查询。后台管理员管理模块可以分为:会员管理、商品管理、订单管理。功能模块图如图1所示

商品管理:可以对商品查看、分类,增加、删除、修改、统计等功能。

购物车管理:会员可以将选购商品放入购物车,同时还可以对购物车里的商品进行修改和删除,确认购物后可以生成订单。

会员管理:可以查看、修改、删除用户,及进行身份认证。

订单管理:用户可查询订单信息,管理员根据情况修改订单。

2 系统的相关技术

2.1 MVC模式

MVC这个概念是由SmallTalk开发社区提出来的,它是第一个分开表示逻辑和业务逻辑的设计模式。MVC引入View视图(表示层)、Model模型(数据)和协调两者的Controller控制器。在MVC模式下,在客户端用户通过表单等手段和视图进行交互,确认后将事件传给控制器。控制器在收到事件后对事件进行初步处理,选择发给哪一个模型,通知该模型层进行相应的更行。模型更新后将更新的结果再反馈给视图,进而最后再向用户反馈。如图2所示 。

MVC设计模式是一种用于分离数据维护和数据表现的方法,在J2EE中引入MVC设计模式,有助于把应用划分为合理的组件,从而可以方便的进行系统的开发、维护和扩充[1]。

2.2 Struts框架

Struts是基于Sun公司J2EE平台的MVC框架。Struts框架完全采用Java语言编写,在编写时调用了标准的J2EE API,因此具有“一次编写,随处运行”的优点。同时,它继承了MVC设计模式的各种特性。Struts基本组件包括控制器组件、模型组件和视图组件。Struts的控制器组件负责接收用户请求、更新模型、以及选择合适的视图组件返回给用户。控制器组件有组于分离模型层和视图层,有了这种分离,就可以在同一个模型的基础上开发多种类型的视图。Struts把Servlet、JSP和自定义标签和信息资源整合到一个统一的框架中,开发人员利用其进行开发时,不再自己编写全套的MVC模式,极大地节省了时间。

2.3 Hibernate框架

Hibernate框架是一个面向Java开发平台的对象/关系数据库映射工具,并且是开源的O/R Mapping框架。Hibernate使Java程序员可以随心所欲地使用对象思想来操作数据库,提供了数据查询和获取数据的方法,可以大幅度减少开发时人工使用SQL和JDBC处理数据的时间,使开发人员专注于应用程序的对象和功能,而不必担心如何保存它们或如何找到它们[2]。

2.4 Spring框架

Spring框架是一个开放源码的应用程序框架,是惟一处理典型的J2EE应用程序所有结构层的,也是惟一提供轻量级容器连同全方面服务的。Spring包含了控制反转的容器,面向方面编程的框架,数据访问的抽象,DBC的简化,事务管理,MVC Web框架,与JNDI、JTA和其它J2EE API 合作化的简化,轻量级的远程处理等模块。Spring与Struts、Hibernate等单层框架不同,Spring致力于以一致的、高效的方式构造整个应用程序,将单层框架的最佳组合糅合在一起建立一个连贯的体系结构[3]。

3 SSH框架

3.1 SSH框架思想

根据前面对Struts2、Spring和Hibernate三个框架的分析,利用其在不同层次上的应用特点,网上超市系统可以采用多层架构模式,从上到下依次为表示层、业务逻辑层、数据持久化层和域模型层,如图2 所示。采用Struts来实表示层,主要是struts拥有完善的标签库和对MVC模式的良好实现。Hibernate来实现数据持久层,主要是Hibernate通过一种对象和数据库中的关系表的映射机制实现了真正的面向对象编程。Spring是基于IoC和AOP的框架,具有良好的模块化,Spring能有效地组织中间层对象,易于同其他View框架无缝集成,将各种专用框架整合成一个连贯的整体构架。

表示层、业务逻辑层、数据持久化层和域模型层,这四层之间的依赖关系是自上而下的,即上层可以依赖下层,而下层不应对上层有依赖或尽量减少对上层的依赖。例如,在系统中使用Hibernate来实现持久化层,若要采用其他机制实现持久化层,不需要改动业务逻辑中的代码。

3.2 SSH框架的整合

1) Struts和Spring 整合

Struts和Spring 整合有多种手段,本系统里采用的是把Spring作为Struts的一个插件实现的。通过Struts的配置文件配置的,如下所示:

2) Spring和Hibernate的整合

Spring和Hibernate的整合是在Spring配置Session工厂实现的。Spring对Hibernate的SessionFactory事务管理进行了封装,使得开发人员能够更简洁的应用Hibernate。通过Spring的配置文件配置的,如下所示:

user.hbm.xml

3.3 SSH 在网上超市的系统中的实现

网上超市系统由会员注册登录、商品浏览查询、我的购物车等部分组成。由前分析可知SSH架构将系统分为表示层、业务逻辑层、数据持久化层和域模型层四层结构,鉴于篇幅有限,下面我们以会员管理模块为例讲解SSH的各个层次在系统中的具体实现。

3.3.1 域模型层

域模型层,主要完成关系表和类对象之间映射的建立。在Hibemate数据持久化解决方案中,数据访问层主要包括一个与数据库表对应的持久化对象 (Persistentobject,简称PO)和一个描述数据库表与PO映射关系的资源文件*.hbm.xml,这样,以后对数据库表的操作也就变成了对这些POJO的操作。

1) 持久化对象(Persistentobject)

持久化对象(Persistentobject)是介于具体应用和数据库之间的一层数据,负责应用和数据库之间的交互。持久化对象用来维护数据库表的记录,它是一个完全符合JavaBean规范的纯Java对象,属性通过getter和setter方法访问,对外隐藏了内部实现的细节。

会员管理需要涉及会员信息表(user),该表包含会员ID、会员名称、密码等信息。下面我们给出User.java文件

public class User {private Long id;

/*会员表中其它字段*/

public Long getId() { return id; }

public void setId(Long id) { this.id = id;}

/*其它getter和setter方法*/}

2) 0/R映射文件

下面是以会员信息User实体为例,讲解映射文件描述数据库表字段与持久化类的属性的映射关系,如代码示例所示。

User.hbm.xml代码

/*在持久化类User和表User之间映射关系。下面进行的是在持久化类User的属性和表User的字段建立一一对应的映射。 */

/*其它持久化类的属性和表的字段的一一映射*/

3.3.2 数据持久层实现

数据持久层使用数据访问对象(Data Access Object,简称是DAO)来抽象和封装所有对数据源的访问。

DAO主要是实现对持久化类的插入、查询、更新、删除操作。一般一个持久化对象使用一个独立的DAO接口和一个对接口的实现,下面是会员管理中的会员信息的DAO对其接口的具体实现,代码如下所示。

UserDAOIpml.java代码

public class UserDAOImpl extends HibernateDaoSupport implements UserDAO

{@SuppressWarnings("unchecked")

public List listUserById(Long UserId)

{/*将用户信息按升序显示*/}

/* 其他操作*/}

3.3.3 表示层实现

表示层是Web应用系统与用户交互的窗口,负责管理用户的请求和响应,并提供一个控制器将调用委托到业务逻辑和其他上游处理,包括视图部分和控制部分,具体是指JSP页面,以及对客户请求进行处理的自定义Action等部分。

1) 控制器Action:Action充当了控制器的角色,用于页面逻辑处理,分发数据,链接转向。会员管理中的显示所有用户页面逻辑处理类功能都放在listUser.java文件中。

public class ListUser extends ActionSupport{}

2) 视图:视图简单的说就是用户所看到的JSP页面。本系统中,页面采用了Struts标签。会员管理涉及诸多的页面,如会员的添加、修改、删除、等页面,因代码比较长,我们就不在此列出。

3) Struts.xml配置:显示所有用户信息的Action在Struts.xml配置文件的配置代码如下所示

listUser.jsp

3.3.4 业务逻辑层实现

业务逻辑是整个系统中比较复杂的部分,可以说是一个核心部分。业务处理代码主要包括xxxservice接口与其实现类xxxserviceImpl。例如会员管理的业务逻辑代码UserService接口和其实现类UserserviceImpl构成。UserService接口定义了针对问题信息的相关业务操作,具体实现则由UserServiceImpl完成。

下面给出显示所有会员信息action在配置文件applicationContext.xml中的配置代码:

4 总结

利用J2EE中的Struts2+Spring+Hibernate的轻量级框架实现MVC模式是当前比较流行的一种技术。该整合框架能够很好的将网上超市系统分成表示层、业务逻辑层、数据持久化层和模域层。Struts框架应用在表示层的框架,用于完成表现层的表现逻辑和业务逻辑;Hibernate框架应用在数据持久化层,实现关系数据库的对象化;Spring框架应用于各层关联,完成持久访问对象的注入和业务逻辑的事务管理。通过这种分层处理,使得系统系统的结构清晰,各层次之间独立,模块划分明确,降低了MVC设计难度,提高了系统的开发效率。

参考文献:

[1]李金娟.基于JSP的MVC开发模式在访问数据库中的应用[J].宁夏师范学院学报,2008(3).

精选范文推荐