通过Struts应用MVC设计模型
2008-02-23 07:50:59来源:互联网 阅读 ()
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模板,这些页面都拥有一个公共的外观或者公同的格式。
使用这些标签库和其它的任何库都是一样的。因为库已经写好了,你所要做的就是告诉servlet引擎要使用它。在Tomcat中,你可以通过web.xml文件中的<taglib>标签来指定标签库的URI,以及Web服务器系统上标签库描述文件的位置。
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解析器。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash