分类:
2008-10-16 19:16:58
最近业余时间笔者一直 Virtual Machine的研究,由于实习分配到项目组里面,不想从前那么闲了,好不容易才抽出时间来继续这个话题的帖子。我打算把J2ee的部分结束之后,再谈谈 JVM和Script,只要笔者有最新的学习笔记总结出来,一定会拿来及时和大家分享的。衷心希望与热爱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代码:
public class MyAction {
public String execute() throws Exception {
//do the work return "success ";
}
}
[1]