通过Struts应用MVC设计模子
当前位置:以往代写 > JAVA 教程 >通过Struts应用MVC设计模子
2019-06-14

通过Struts应用MVC设计模子

通过Struts应用MVC设计模子

副标题#e#

模子–视图–节制器(Model-View-Controller,MVC)体系突出了Servlets和JSP的利益,同时也令它们的缺点最小化。在实现中,用户请求被发送到一个节制器servlet,该servlet抉择请求的性质,而且按照请求的范例传送给适合的处理惩罚器。每个处理惩罚器都和一个出格的模子相关,内里封装有贸易逻辑来执行一些出格的函数荟萃。处理惩罚完毕后,功效会发送回处理惩罚器,处理惩罚器选择适合的视图显示它。

Struts最早于2002年5月作为Jakarta项目标构成部门问世,Jakata项目由Apache Foundation.运做。项目标创建者但愿该项目标研究改造和提高Java Server Pages (JSPs)、servlet、标签库以及面向工具的技能水准。Struts为利用MVC体系来编写应用提供了一个架构。Struts利用“ActionMapping”,它答允servlet将用户的请求转变为应用行为。ActionMapping凡是指定一个请求的路径、在请求长举办行动的工具范例,以及指定其它需要的属性。

Action工具作为ActionMapping的一个部门利用,认真处理惩罚请求,而且发送响应回适合的视图(凡是是一个Web欣赏器),可能传送请求至适合的模子。

在模子和视图间的桥是一个form bean,它可以通过担任org.apache.struts.action.ActionForm获得。form bean用来生存处理惩罚前的用户数据,可能显示返回给用户的模子数据。Struts包括有自界说的标签,它可以由建设的form bean中自动组合字段。

在实践顶用户请求JSP页面,节制器servlet吸收请求并抉择由哪个应用处理惩罚它。Action工具传送该请求到包括有吸收贸易逻辑的JavaBean中。贸易逻辑bean将毗连数据库并举办查询,吸收功效,然后返回功效给Action工具。Action工具将功效作为请求的一部门存放到一个form bean中。一旦收集完请求的全部数据,就可以名目化功效而且显示。最后是JavaServer Page以HTML表格的形式将功效显示出来。

模子,节制器和视图

Struts中的节制器的根基组件是ActionServlet类中界说的servlet,它是由ActionMappings界说的。ActionMapping类暗示的是Action工具的名字和位置。当一个请求进入节制器时,它将请求的路径映射到Action的位置,而且将请求传送给Action。Struts的ActionMapping类还大概包括有其它的信息,这些信息大概只是与你的应用相关,譬喻当地变量,情况变量可能其它URIs。

Struts的要害是节制器周围的勾当。Struts节制器servlet映射事件到类(一个事件凡是是一个HTTP POST, GET,可能雷同的请求)。ActionServlet是MVC设计模子的司令部,也是Structs架构的焦点。ActionServlet建设和利用Action,一个ActionForm和ActionForward。struts-config.xml是用来配置Action的。在建设Web应用期间,回收扩展Action和ActionForm来办理如何响应用户请求的问题。struts-config.xml则是汇报ActionServlet如何利用扩展类。也可扩展ActionServlet以令Structs应用带有一些自界说的特性。

这个要领有几个利益。首先,应用的整个逻辑流都是在一个分品级的文本文件中。这样就可以较量容易地查察、领略应用,出格是大的应用。第二,编写网页的人在修改网页时就无需遍历Java代码来领略应用的流程,而Java开拓者在改变流程的时候也无需从头编译代码。

ActionForm为Web应用维护session状态。ActionForm是一个抽象类,它可以被每个输入表格模子扩展。它代表数据的一般观念,可以被HTML表格配置可能更新。譬喻,你的应用也许拥有一个被HTML表格配置的UserActionForm。Struts的架构将查抄UserActionForm是否存在,假如不存在,就会建设一个该类的实例。Structs将会利用HttpServletRequest的相应字段来配置UserActionForm的状态。在传送UserActionForm给贸易封装层的UserAction前,Struct架构先更新UserActionForm的状态。

Structs模子包括有系统的状态和它可以接管的操纵。可以利用各类百般的布局来暗示模子(譬喻其它servlets可能JSP),不外在大大都的时候你城市利用JavaBeans。JavaBean的属性,可能在Enterprise JavaBeans (EJBs)中由外部数据源获得的数据–暗示的是状态,而要领例是暗示可以在上面举办的操纵。操纵并不需要被JavaBean要领界说;在简朴的环境下,操纵可以安排到Action工具中,固然这样会令处理惩罚和分级之间的区别变得恍惚。

Struts MVC应用的视图凡是由JSP结构,它可以利用HTML可能XML静态名目化页面,还提供了一个要领可动态插入自界说的内容来响应用户的请求。Structs的一个要害是它的自界说标签库,它提供了一个要领,可以很容易地利用JSP来建设用户界面。

Structs架构包括有自界说的标签库,可以通过各类差异的方法利用。固然就利用该架构来说,这些库并不是必需的,不外它们包括的标签在你的应用的很多处所都很有用。Structs的一些标签库包罗有:

. structs-html标签库。该库可以用作建设动态HTML用户界面可能表格。

. structs-bean标签库。对付将JavaBean代码放到JSP页面,该库提供了一个增强方法,通过 标签实现。

. struts-logic标签库。该库可以打点有条件地发生输出文本,遍历工具collections以反复地发生输出文本,尚有应用流节制。

. struts-template标签库。该库包括的标签可用作为页面建设动态的JSP模板,这些页面都拥有一个民众的外观可能公同的名目。

#p#分页标题#e#

利用这些标签库和其它的任何库都是一样的。因为库已经写好了,你所要做的就是汇报servlet引擎要利用它。在Tomcat中,你可以通过web.xml文件中的<taglib>标签来指定标签库的URI,以及Web处事器系统上标签库描写文件的位置。


#p#副标题#e#

The Small Print

Jakarta工程可让你下载Structs的二进制版本,可能直接由源代码中编译它。二进制版事情得很好,不外假如你拥有一个不常见的软件平台,可能想进修一下如何编译它,也不是很坚苦。无论你的选择如何,Structs都需要以下几个软件:

. Java Development Kit (JDK). 你需要为你的操纵系统下载和安装一个Java 2 JDK实现。

.Servlet容器。你还需要下载和安装一个兼容Servlet API类型(2.2版以上)、JSP类型(1.1版以上)的servlet容器。一个好的选择是下载Apache的Tomcat,它可以支持网页处事,而且可以运行servlet和JSP。

.XML理会器。Struts需要一个兼容Java API for XML Parsing (JAXP)类型(1.1版或以上)的XML理会器。

.Servlet API类。为了编译Structs可能利用Structs的应用,你将需要一个包括有servlet和JSP API类的servlet.jar文件。大部门的servlet容器都包括有这个JAR文件。

.JDBC 2.0 optional package类。Structs支持javax.sql.DataSource的一个可选实现,因此它需要这些API类来编译。你可以在这个网址下载这些包类:http://java.sun.com/products/jdbc/download.html

要利用Structs来成立一个应用,需要遵从以下步调。首先,将Structs中的lib/commons-*.jar和 lib/struts.jar文件拷贝到应用中的WEB-INF/lib目次。然后将Structs中的全部标签库描写文件(lib/struts-*.tld)拷贝到你的Web应用中的WEB-INF目次。

拷贝完这些文件后,你就可以修改Web应用中的web.xml文件,令它包括有一个<servlet>元素来界说节制器servlet,尚有一个<servlet-mapping>元素以指明哪个请求的URI被映射到这个servlet。假如你利用默认的目次来举办一个尺度的安装,你可以利用Struts例子应用中的web.xml文件来作为一个参考,看它是如何配置的,然后你就可以修改Web应用中的web.xml文件来指定适当的标签库声明。再次申明,你可以由Structs的例子应用中进修如何配置。

修改完web.xml文件后,在WEB-INF目次建设一个称为struts-config.xml的文件,在个中界说操纵映射和其它与你的应用相关的特性。最后,在每个将利用Struts自界说标签的JSP页面的顶部,插手Struts自界说标签的声明。

Struts这个名字来历于在修建和旧式飞机中利用的支持金属架。它的目标是为了辅佐你淘汰在运用MVC设计模子来开拓Web应用的时间。你仍然需要进修和应用该架构,不外它将可以完成个中一些沉重的事情。假如想殽杂利用servlets和JSP的利益来成立可扩展的应用,Struct可以辅佐你完成个中的一些事情。

    关键字:

在线提交作业