Java学习杂谈(十)--Struts2 - 编程入门网
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文件:
注意到以往的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代码:
Java学习杂谈(十)--Struts2(2)时间:2011-01-26 blogjava Gay Bird很明显的区别是不用再继承任何类和接口,返回的只是一个String,无参数。实际上在Struts-2中任何返回String的无参数方法都可以通过配置来调用action.所有的参数从哪里来获得呢?答案就是Inversion of Control技术(控制反转)。笔者尽量以最通俗的方式来解释,我们先试图让这个Action获得reuqest对象,这样可以提取页面提交的任何参数。那么我们把request设为一个成员变量,然后需要一个对它的set方法。由于大部分的action都需要这么做,我们把这个set方法作为接口来实现。
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |