快速业务通道

Java学习杂谈(十)--Struts2 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-20

Java学习杂谈(十)--Struts2

时间:2011-01-26 blogjava Gay Bird

最近业余时间笔者一直Java Virtual Machine的研究,由于实习分配到项目组里面,不想从前那么闲了,好不容易才抽出时间来继续这个话题的帖子。我打算把J2ee的部分结束之后,再谈谈 JVM和JavaScript,只要笔者有最新的学习笔记总结出来,一定会拿来及时和大家分享的。衷心希望与热爱Java的关大同仁共同进步……

这次准备继续上次的话题先讲讲Struts-2,手下简短回顾一段历史:随着时间的推移,Web应用框架经常变化的需求,产生了几个下一代Struts的解决方案。其中的Struts Ti 继续坚持MVC模式的基础上改进,继续Struts的成功经验。   

WebWork项目是在2002年3月发布的,它对Struts式框架进行了革命性改进,引进了不少新的思想,概念和功能,但和原Struts代码并不兼容。WebWork是一个成熟的框架,经过了好几次重大的改进与发布。在2005年12月,WebWork与Struts Ti决定合拼,再此同时,Struts Ti改名为Struts Action Framework 2.0,成为Struts真正的下一代。

看看Struts-2的处理流程:

1)Browser产生一个请求并提交框架来处理:根据配置决定使用哪些拦截器、action类和结果等。

2)请求经过一系列拦截器:根据请求的级别不同拦截器做不同的处理。这和Struts-1的RequestProcessor类很相似。

3)调用Action:产生一个新的action实例,调用业务逻辑方法。

4)调用产生结果:匹配result class并调用产生实例。

5)请求再次经过一系列拦截器返回:过程也可配置减少拦截器数量

6)请求返回用户:从control返回servlet,生成Html.

这里很明显的一点是不存在FormBean的作用域封装,直接可以从Action中取得数据。

这里有一个Strut-2配置的web.xml文件:

<filter> <filter-name>  controller  </filter-name> <filter-class>  org.apache.struts.action2.dispatcher.FilterDispatcher  </filter-class> </filter> <filter-mapping> <filter-name>  cotroller  </filter-name> <url-pattern>  /*  </url-pattern> </filter-mapping>

注意到以往的servlet变成了filter,ActionServlet变成了FilterDispatcher,*.do变成了/*.filter 配置定义了名称(供关联)和filter的类。filter mapping让URI匹配成功的的请求调用该filter.默认情况下,扩展名为".action  ".这个是在default.properties文件里的  "struts.action.extension  "属性定义的。

default.properties是属性定义文件,通过在项目classpath路径中包含一个名为“struts.properties”的文件来设置不同的属性值。而Struts-2的默认配置文件名为struts.xml.由于1和2的action扩展名分别为。do和。action,所以很方便能共存。我们再来看一个Struts-2的action代码:

public  class  MyAction  { public  String  execute()throws  Exception  { //do  the  work return  "success  "; } }

Java学习杂谈(十)--Struts2(2)

时间:2011-01-26 blogjava Gay Bird

很明显的区别是不用再继承任何类和接口,返回的只是一个String,无参数。实际上在Struts-2中任何返回String的无参数方法都可以通过配置来调用action.所有的参数从哪里来获得呢?答案就是Inversion of Control技术(控制反转)。笔者尽量以最通俗的方式来解释,我们先试图让这个Action获得reuqest对象,这样可以提取页面提交的任何参数。那么我们把request设为一个成员变量,然后需要一个对它的set方法。由于大部分的action都需要这么做,我们把这个set方法作为接口来实现。

publ

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号