欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    基于MVC模式的Struts框架的研究与应用.pdf

    • 资源ID:69625470       资源大小:235.95KB        全文页数:6页
    • 资源格式: PDF        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于MVC模式的Struts框架的研究与应用.pdf

    http:/-1-基于基于 MVC 模式的模式的 Struts 框架的研究与应用框架的研究与应用 李梅,宋泽海 北京交通大学计算机与信息技术学院,北京(100044)E-mail:limei_ 摘摘 要:要:随着面向对象技术、Web技术和J2EE技术的发展,软件框架技术在Web开发中得到了广泛应用。Struts作为一个开源的Web层框架,是MVC及J2EE若干核心模式的标准实现,方便了代码的编写和管理,适用于大型、复杂的Web应用开发。本文首先介绍了MVC设计模式和Struts框架的工作原理,并结合一个具体实例详细述了如何利用Struts框架实现MVC设计模式,实践证明Struts框架能极大地提高系统的可扩展性、可重用性及可维护性。关键词:关键词:MVC;Struts 框架;JSP;Servlet 中图分类号:中图分类号:TP3911 文献标识码:文献标识码:A 0 引言引言 如今,SUN 公司提出的 J2EE(Java 2 Enterprise Edition)平台已经日趋成熟,并得到广泛应用。J2EE 提供了一个企业级的计算模型和运行环境,用于开发和部署多层体系结构的应用。在 WEB 应用系统设计中,为了提高程序的重用性和可维护性,越来越多的开发人员采用 MVC(Model View-Controller)设计模式来分离系统的用户界面、业务逻辑及业务控制。Apache Software Foundation 组织提供的 Struts 框架就是MVC 设计模式的具体实现,它能够很好地将面向对象的设计和用户接口分开,从而大大方便代码的修改1。此外,Struts 框架提供了许多可供扩展和定制的地方,使得应用程序可以方便地扩展框架,更好地适应用户的实际需求2。1 MVC 设计模式概述设计模式概述 MVC 把应用程序的输入、处理、输出按照模型(Model),视图(View),控制器(Controller)的方式分成三层,图 1 揭示了三者之间的关系 图 1 MVC 设计模式 1.1 视图视图 视图能够显示相关数据而且能够接收用户的输入数据。随着新技术的不断出现,视图的组成元素也在随之多样化,如XHTML,XML/XSL,WML 等一些标志语言。1.2 模型模型 模型表示业务数据和逻辑。它是应用程序的主体部分。模型对业务流程的对象进行抽象,因此一个模型能为多个视图提供数据,大大提高了应用的可重用性。1.3 控制器控制器 控制器在模型和视图之间起到了沟通的作用,它处理用户在视图上的输入,调用模型响应用户的请求,同时选择相应的视图请求(模型)响应状态查询 处理业务流程 通知视图业务状态更新(控制器)接受用户请求 调用模型响应用户请求 选择视图显示响应结果 业务处理(视图)显示模型状态 接受数据更新请求 把数据传给控制器 选择视图 通知数据更新 状态查询 http:/-2-显示处理后的结果。这样模型和视图之间的耦合度就降低了,它们甚至可以彼此都不知道对方,而由控制器把这两部分连接起来。2 Struts 框架的工作原理框架的工作原理 Struts实质上就是在JSP Model2的基础上实现的一个MVC框架。在Struts框架中,模型由实现业务逻辑的JavaBean或EJB组件构成,控制器有Acti-onServlet和Action来实现,视图则由一组JSP文件构成3。图2显示了Struts框架实现的MVC机制。图 2 Struts 实现的 MVC 框架 2.1 Controller(控制器)(控制器)控制器的作用是从客户端接受请求,并且选择执行相应的业务逻辑,然后把响应结果送回到客户端。在Struts中,基本的控制器组件是ActionServlet类中的实例servlet,而实际使用的servlet在配置文件中则由一组映射(由ActionMapping类进行描述)进行定义,每个ActionMapping对象实现了一个请求到一个具体的Model部分的Action处理器对象之间的映射,同时指定下一个将要转发的所有可能视图的路径。2.2 Model(模型)(模型)MVC 系统中的 Model 部分从概念上可以分为两类-系统的内部状态和可以改变状态的操作(事务逻辑)。内部状态通常由一组 ActionForm JavaBean 表示,它可以通过定义属性描述客户端表单数据,通过ActionForm 组件对象实现了对 View 和Model 之间交互的支持。根据设计或应用程序复杂度的不同,这些 Bean 可以是自包含的并具有持续的状态,或只在需要时才获得数据(从某个数据库)。大型应用程序通常在方法内部封装事务逻辑(操作),这些方法可以被拥有状态信息的 bean 调用。小型程序中,操作可能会被内嵌在 Action 类,它是 struts 框架中控制器角色的一部分。Struts框架下通常建议使用一组 JavaBean 表示系统的内部状态,根据系统的复杂度也可以使用像 Entity EJB 和 Session EJB 等组件来实现系统状态。2.3 View(视图)(视图)Struts应用中的View部分是由JSP建立的。Struts提供了自定义的标记库可以使用,通过这些自定义标记可以非常好地和系统的Model部分交互,由此创建的JSP表单,可以实现和Model部分中的ActionForm的映射,完成对用户数据的封装,同时这些自定义标记还提供了像模板定制等多种显示功能。Struts应用框架的处理流程清楚的体现了MVC系统的特点。Controller ActionServlet处理客户请求,利用配置的ActionMapping对象把请求映射到Action处理器对象进行处理。Action处理对象访问ActionForm中的数据,处理和响应客户请求,它还调用后台的Bean组件,这些组件封装了具体的业务逻辑。Action 处理器对象根据处理结果通知Controller,由Controller进行下一步的处理。2.4 Struts 的配置文件的配置文件 一个用户的请求是通过ActionServlet来处理和转发的。ActionServlet通过得到描述用户请求路径和Action映射的配置信息,来决定如何转发。在Struts中,这些配置信息存在特定的XML文件struts config.xml中。Web 服务器 视图 View 控制 器 模型ActionActionStruts-config.xml Servlet/JSP 容器浏 览 器 http:/-3-3 应用开发应用开发 下面用一个最近做过的项目,具体介绍一下Struts的应用。该项目是为了服务某市地税局换发税务登记证而开发的系统。系统分成开业税务登记,变更税务登记,停复业税务登记,验换证税务登记证,注销税务登记等模块。以下均以变更税务登记中的变更分支机构模块为例。变更分支机构是纳税人到税务机关对其合法的企事业单位分支机构的基本信息进行修改,其中计算机代码是纳税人的标识符。3.1 Model 层的设计层的设计 根据 MVC 的分层原则,我们将业务逻辑执行分离到单独的 JavaBean 中。考虑到其重用性,对业务处理部分进行了改进,在原来 Action 的基础上增加了一个 Processor类。在 Action 中将业务数据 BO 封装到 VO,然后利用代理模式访问后台 EJB,并将 VO传值给 Processor,接着调用 DjDBUtil 通过ORMapping 方式与数据库交互。其中与数据库相关的操作采用 DAO 模式,这样屏蔽了业务逻辑对数据库的底层访问,将数据访问封装成一个面向对象的数据抽象接口。图 3为业务处理流程:图 3 业务处理流程 以变更分支机构为例,FzjgAction:package com.ttsoft.bjtax.dj.bgdj.web;public ActionForward doSave(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response)throws BaseException /获得 bo(业务数据的封装类)WsbgdjBO bo=(FzjgActionForm)session.getAttribute(fzjgActionForm).getWsbgdjBO();/构造vo,进行查询 VOPackage vo=new VOPackage();/保存分支机构数据 bo.setFzjg(fzjg);.vo.setData(bo);vo.setUserData(userData);/利用代理模式,将业务数据BO封装到VO DefaultProxy ejb=DefaultProxy.getInstance();bo=(WsbgdjBO)ejb.process(vo);/根据currenPage值不同,来选择跳转的页面 if(currentPage.equals(smquery)/返回上门页面 return mapping.findForward(smquery);else /返回网上页面 return mapping.findForward(mainmenu);最后,FzjgAction 类把流程转发给合适的视图组件即:上门变更页面(smquery)或者是网上变更页面(mainmenu)。在这里,vo可以看作是后台 EJB 与 Processor 通信的数据包。下面是 FzjgProcessor 类:public WsbgdjBO doSave(VOPackage vo)throws BaseException /创建数据库连接 Connection conn=null;WsbgdjBO bo=(WsbgdjBO)vo.getData EJB Processor Proxy Action 将 BO 封 装到 VO DjDBUtil 数据库 ORMapping 通过代理访问后台 EJB http:/-4-();try conn=DjDBUtil.getConnection();DjDAO dao=new DjDAO(conn);finally DjDBUtil.freeConnection(conn);return bo;这种设计在业务逻辑比较复杂的系统中,能够更好的将业务逻辑分离出来,使得Action 并不是单纯的业务处理类,而是充当控制器组件与业务逻辑的中转器,当一些业务逻辑改变的时候,只需要修改相应的Processor 而不影响到其它业务处理,这样不仅使代码得到了更好的复用同时更有利于系统的二次开发。3.2 View 层的设计层的设计 View 负责视图表现,即这个组件决定数据如何显示给用户4。在该系统的 MVC模式中视图部分主要包括 JSP 表单和FormBean。为了避免在 JSP 页面中出现 Java代码而给开发人员带来麻烦,以及提高View层的重用性,显示页面大量运用了标记(Taglib),这也是 Struts 的精华之一。以变更分支机构模块为例,该页面主要是由企业事业单位分支机构基本信息属性表单组成。Fzjgxxwh001.jsp 的源代码概要如下:/引入 Struts bean 标签 /引入 Struts html 标签./引入更多标签 /通过使用标签实现表单的描绘 计算机代码 ./分支机构其他信息 3.3 Controller 层设计层设计 Struts控制器组件负责接收用户请求更新模型以及选择合适的视图组件返回给用户,有助于将模型层与视图层分离。它的核心控制器组件Action-Servlet接受所有来自客户端的请求并根据Struts应用专有配置文件struts-config.xml把请求转发给其它组件,从而对系统进行灵活的配置,简化了开发过程。其中用户的请求,即视图组件的消息,在中进行配置;而则定义了用于在视图组件和控制器组件之间传递的HTML表单数据信息。该实例中主要代码如下:/其它的 action 元素 在此我们声明了一个表单bean:fzjgActionForm,它保存了分支机构的基本信息的所有属性。接着,将该类链接到ActionMapping对象。其中包含零个或多个元素,元素描述了从特定的请求路径到相应的Action类的映射,以及处理逻辑和处理后的转发路径。另外一个对于任何Java Web应用都是必需的配置文件是Web.xml,它描述了系统的Controller对象。在Web.xml中增加如下标记:loadsingleton /loadsingleton是本例中Servlet的名称 mon.web.servlet.LoadSingletonServlet 1 action *.do 其中,元素用来定义servlet的名称,元素用来指定servlet的完整类名。而元素,用来指定ActionServlet可以处理哪些URL。必须注意的是,元素中的子元素匹配。以上代码的属性为“*.do”,表明ActionServlet负责处理所有以“.do”扩展名结尾的URL。/WEB-INF/struts-html.tld/WEB-INF/struts-html.tld .以变更分支机构为例,当在fzjgxxwh001.jsp 点击“保存”按钮时,用户请求被提交给 ActionServlet,ActionServlet 根据 Struts-config.xml 中的配置信息把/dj/bgdj/fzjg.do 的 URL 映射到com.ttsoft.bjtax.dj.bgdj.web.FzjgAction 类,然后调用相应的业务处理类,把商品信息封装到fzjgActionForm,完成分支机构基本信息的保存操作,最后把结果转发给/dj/bgdj/fzjgxxwh001.jsp。4 结束语结束语 本文论述了在开发某市地税局验换税务登记证系统过程中使用先进的Struts框架技术,实现了用户界面和系统业务逻辑的分离。实践证明,整个软件开发周期明显缩短,大大提高了代码的可维护性和可复用性,各个部分耦合度很小,在进行功能扩展和改动时只需对相应的业务逻辑重组,不用改动整个系统,大大推动了税务管理信息化的进程。参考文献参考文献 1 肖锋,曹作良.基于Struts体系机构的企业及应用系统J.天津理工学院学报,2003,19(4):63-65.2 张南平,朱富利.基于MVC模式的Struts框架的研究与应用J.计算机技术与发展,2006,16(3):229-231.3 孙卫琴 通Struts基于MVC设计模式的Struts框架的应用方法M.北京:电子工业出版社,2004.4 杨勇,韩莉英.基于 MVC 模式的 Struts 框 架在电子商务中的应用J.计算机应用研 究,2006,(5)172-174.http:/-6-Research and Application of Struts Framework Based on MVC Pattern LI Mei,SONG Zehai School of Computer and Information Technology of Beijing Jiaotong University,Beijing (100044)Abstract With sophisticated technologies like Object-Oriented,Web and J2EE being applied,software framework technology is used extensively in Web application development.As a best popular open-source framework,Struts Frame work is a standard implementation of MVC and some core J2EE design patterns,which greatly facilitates writing and managing codes.Struts Frame work is especially suitable to develop large-size and complex Web applications.This paper introduces the work principle of MVC design and Struts framework at first,and then combined an example,discusses how can use Struts framework to realize the MVC design.Practice proves that this framework can greatly raise the expansibility,reuse and maintainability of system.Keywords:MVC,Struts Framework,JSP,Servlet 作者简介:李梅(1983-),女,北京交通大学,硕士研究生,研究方向为计算机软件与理论;宋泽海,高级工程师,研究方向为 MIS、数据系统及其应用、多媒体技术。

    注意事项

    本文(基于MVC模式的Struts框架的研究与应用.pdf)为本站会员(qwe****56)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开