仓酷云

标题: JAVA编程:基于MVC形式的Struts框架研讨与使用 [打印本页]

作者: 再见西城    时间: 2015-1-18 11:14
标题: JAVA编程:基于MVC形式的Struts框架研讨与使用
什么时候上述的三种开发工具能和三为一,什么时候java的竞争力才更强,才有机会拉拢更多的程序员投入到对java的开发上,因为到时的开发工具将会比.net的更简单。还有一点也很关键,什么时候java推出的jsf能成为真正意义上的标准。  择要:Struts框架具有组件的模块化,天真性和重用性的长处,同时简化了基于MVC的web使用程序的开辟。本文会商了Struts框架完成MVC形式的道理与办法,给出了一个详细的使用实例。

  散布式企业使用软件布局庞大、触及多种手艺,对计划开辟职员提出了很高的请求。在此情形下,使用计划形式DD可复用的计划计划举行软件的计划开辟非常需要。MVC形式已被证实是一种乐成的软件计划形式,本文次要会商了一种完成MVC形式的使用框架DDStruts,并经由过程一个实例展现了Struts框架完成MVC形式的办法。

  MVC计划形式

  MVC(Modle-View-Controller,模子-视图-把持器)形式是XeroxPARC在20世纪80年月为编程言语Smalltalk-80所计划的一种软件计划形式,至今已被普遍利用,并被保举为Sun公司J2EE平台的计划形式,其为开辟交互式使用体系供应了一个优异的计划形式,遭到愈来愈多开辟者的接待。

  MVC形式次要由3个部分构成:模子、视图和把持器,其布局如所示。

JAVA编程:基于MVC形式的Struts框架研讨与使用
登录/注册后可看大图

MVC形式框架
  模子暗示营业逻辑和营业划定规矩等,在MVC的三个部件中具有最多的处置义务。它能够用JavaBean和EJB等组件手艺来处置数据库的会见。模子能为多个视图供应数据。因为使用于模子的代码只需写一次就能够被多个视图重用,以是削减了代码的反复性。

  视图是屏幕上的显现。模子举行操纵以后,其了局就是经由过程视图来显现的。在视图中实在没有真实的处置产生,只是作为一种输入数据并同意用户操纵的体例。

  把持器用于办理用户与视图产生的交互。一旦用户想对模子举行处置时,它不克不及间接往实行模子,而是经由过程把持器来直接地完成。把持器能从视图中取值,然后将响应的值传给模子举行处置。把持器承受用户的输出并挪用模子和视图往完成用户的需求。

  由上述可知,MVC形式的处置历程是:起首由把持器吸收用户的哀求,并决意应当挪用哪一个模子来举行处置,然后模子用营业逻辑来处置用户的哀求并前往数据,最初把持器用响应的视图前往数据,并经由过程表达层出现给用户。

  MVC自己就是一个十分庞大的体系,以是接纳MVC完成Web使用时,最好选一个现成的MVC框架,在此之下举行开辟,从而获得事半功倍的效果。如今有良多可供利用的MVC框架,因为Struts有完全的文档而且绝对来说对照复杂,以是用它开辟MVC体系仍是对照便利地。

  Struts框架

  Struts是Apache构造的一个开放源码项目。Struts是一个对照好的MVC框架,供应了对开辟MVC体系的底层撑持,它接纳的次要手艺是Servlet,JSP和Customtaglibrary。其基础组成如所示。

JAVA编程:基于MVC形式的Struts框架研讨与使用
登录/注册后可看大图

Struts框架图
  由能够看出,在Struts框架中Controller功效由ActionServlet和ActionMapping对象组成,中心是一个Servlet范例的对象ActionServlet,它用来承受客户真个哀求。ActionServlet包含一组基于设置的ActionMapping对象,每一个ActionMapping对象完成了一个哀求到一个详细的Model部分中Action处置器对象之间的映照。

  Model部分由Action和ActionForm对象组成。一切的Action处置器对象都是开辟者从Struts的Action类派生的子类。Action处置器对象封装了详细的处置逻辑,挪用营业逻辑模块,而且把呼应提交到符合的View组件以发生呼应。Struts供应的ActionForm组件对象能够经由过程界说属性形貌客户端表双数据。开辟者能够从它派生子类对象,使用它和Struts供应的自界说标志库分离能够完成对客户真个表双数据的优秀封装和撑持,Action处置器对象能够间接对它举行读写,而不再必要和request、response对象举行数据交互。经由过程ActionForm组件对象完成了对View和Model之间交互的撑持。

  View部分是经由过程JSP手艺完成的。Struts供应了自界说的标志库,经由过程这些自界说标志能够十分好地和体系的Model部分交互,经由过程利用这些自界说标志创立的JSP表单,能够完成和Model部分中的ActionForm的映照,完成对用户数据的封装。

  基于MVC形式的Struts框架的使用

  上面经由过程一个详细实例申明怎样使用Struts框架构建使用程序。该实例是一个周全预算办理体系中的预算材料模块,包含材料录进、材料查询、材料修正和材料删除四个功效,用于完成预算材料的录进、查询、修正及删除。

  详细在利用Struts框架时,对应各个部分的开辟事情次要包含:

  1、构建视图

  在Struts框架中,视图的完成次要接纳JSP手艺,但与传统的JSP比拟有两个明显的分歧。

  起首,在Struts下利用JSP开辟视图,在页面中没有包括任何的剧本程序,只是纯真的完成数据传送和吸收和显现前往的数据。对数据的处置和页面的跳转都在营业层中来完成。如许做完成了营业逻辑和暗示逻辑的完整分别,进步了一个使用程序的功能和可扩大性,并有益于程序的复用。

  第二,Struts框架供应了一组可扩大的自界说标志库,次要包含:Bean标志、Logic标志、HTML标志和模板标志。经由过程利用标志,能够简化创立用户界面的历程,而且更好地完成数据的封装。经由过程利用这些自界说标志创立的JSP表单,能够完成和营业层中的ActionForm的映照,十分好地和体系的营业逻辑部分交互。

  上面给出材料录进页面的部分完成代码:

<%@pagecontentType="text/html;charset=GBK"%>
<%@tagliburi="/WEB-INF/struts-html.tld"prefix="html"%>
<%@tagliburi="/WEB-INF/struts-bean.tld"prefix="bean"%>
<%@tagliburi="/WEB-INF/struts-logic.tld"prefix="logic"%>
<html>
<head>
<title>
后期筹办材料录进
</title>
<linkrel="stylesheet"type="text/css"href="../images/mobile.css">
</head>
<bodybgcolor="#ffffff">
<html:formaction="/information/budgetinfoadd"enctype="multipart/form-data">
<tablewidth="95%"border="1"cellspacing="1"cellpadding="2"bordercolor="#CBE7F8"align="center">
<trbgcolor="#F2F9FD">
<tdwidth="20%">范例:</td>
<td>
<html:selectproperty="infoType"styleClass="input2">
<html:optionscollection="TypeList"property="id"labelProperty="typeName"/>
</html:select>
</td>
</tr>
……
</table>
</html:form>
</body>
</html>
  程序中起首引进了HTML、Bean和Logic标志库,然后用action指出挪用的Action组件的相对路径,标志<html:form>和</html:form>封装了表双数据,在营业层顶用响应的ActionForm组件能够将输出的数据全体失掉。

  能够看出在视图中没有举行任何的营业逻辑的处置,其次要感化是给出客户端显现的信息和处置了局,和哀求的转发,它是和用户交互的接口。

  2、构建模子

  模子接纳JavaBean和EJB组件,计划和完成体系的营业逻辑。依据分歧的哀求从Action派生详细Action处置对象,完成“做甚么”的义务来挪用由Bean组成的营业组件,创立由ActionForm的派生类完成对客户端表双数据的封装。

  上面以BudgetInfoAddForm这个ActionFormBean举行申明:

……
publicfinalclassBudgetInfoAddFormextendsActionForm{
privateStringinfoType;
privateStringtitle;
privateStringcontent;
privateFormFileinfoFile;
  这里暗示BudgetInfoAddForm承继于ActionForm,在这个Bean中界说了视图中所要显现数据信息的参数,包含infoType,材料分类;title,材料题目;content,材料内容;infoFile,材料文件。同时在BudgetInfoAddForm中供应了设定和会见这些参数的办法:

publicStringgetInfoType()
publicvoidsetInfoType(StringinfoType)
publicStringgetTitle()
publicvoidsetTitle(Stringtitle)
publicStringgetContent()
publicvoidsetContent(Stringcontent)
publicFormFilegetInfoFile()
publicvoidsetInfoFile(FormFileinfoFile)
publicvoidreset(ActionMappingmapping,HttpServletRequestrequest){
 title=null;
 content=null;
 infoFile=null;
}
  3、构建把持器

  在Struts使用框架中,中央把持器(ActionServlet)是由Struts框架自己所供应,开辟职员一样平常不必对该ActionServlet举行再次开辟;卖力详细营业处置的Action类则是开辟者开辟完成的重点,在这些Action对象中会举行一切的营业操纵,处置终了,由Struts的ActionServlet转向到jsp页面,将处置了局前往给客户端。

  在预算材料模块中,完成了四个Action:BudgetInfoAddAction,用于材料录进;BudgetInfoContentAction,用于材料查询;BudgetInfoUpdateAction,用于材料修正;BudgetInfoDelAction,用于材料删除。

  4、创建设置文件

  Struts框架中有两个设置文件web.xml和struts-config.xml,用于设置Struts体系中的各个模块之间的交互。经由过程对这两个设置文件的设置,把Struts框架中MVC的各个部分接洽起来,完成了一个真实的MVC体系。

  停止语

  Struts是一种基于MVC计划形式的企业级Web使用开辟框架,它的计划目标是从全体上加重机关企业Web使用的包袱。其自带的标志库,能年夜年夜进步开辟效力,同时进步了体系的可保护性和可扩大性。本文在总结Struts框架手艺及其事情道理的基本上给出了一个使用实例,为从此更好的使用Struts框架开辟Web使用程序供应了参考。
手机用到的是用j2me所编出来的小程序。
作者: 深爱那片海    时间: 2015-1-20 18:16
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
作者: 小妖女    时间: 2015-1-29 14:00
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
作者: 若天明    时间: 2015-2-5 04:02
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
作者: 山那边是海    时间: 2015-2-6 09:25
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
作者: 爱飞    时间: 2015-2-8 11:58
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
作者: 冷月葬花魂    时间: 2015-2-25 10:45
是一种使用者不需花费很多时间学习的语言
作者: 透明    时间: 2015-3-7 15:17
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
作者: 飘灵儿    时间: 2015-3-17 08:35
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
作者: 愤怒的大鸟    时间: 2015-3-24 03:44
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2