struts2的基本流程
struts2框架由三部分组成:核心控制器FilterDispatcher(struts2框架提供)、业务控制器和用户实现的业务逻辑组件(后两者由用户实现)
1.核心控制器FilterDispatcher
FilterDispatcher是struts2框架的核心控制器,该控制器作为一个filter运行在web应用中,负责拦截所有的用户请求,过滤用户请求,如果请求以action结尾,该请求将被转入struts2框架处理。
struts2框架获得*.action请求后,将根据*.action请求的前面部分决定调用哪个业务逻辑组件。
struts2应用中的action都被定义在struts.xml文件中,文件中定义了action的name属性和class属性,name决定该action处理哪个用户请求,而class属性决定了该action的实现类。
struts2用于处理用户请求的action实例,并不是用户实现的业务控制器,而是action代理——因为用户实现的业务控制器并没有与servletAPI耦合,显然无法处理用户请求。struts2框架提供的拦截器链负责将HttpServletRequest请求中的请求参数解析出来,传入action中,并调用action中的execute方法来处理用户请求。下图为处理模型:
从上图能看出,用户实现的action类仅仅是struts2的action代理的代理目标。用户实现的业务控制器action则包含了对用户请求的处理,用户的请求数据包含在HttpServletRequest对象中,而用户的action类无需访问HttpServletRequest对象。拦截器负责将HttpServletRequest里的请求信息解析出来,传给业务逻辑组件action实例。
2.业务控制器
action中通常含有一个execute方法,根据处理结果不同,excute返回不同字符串——每个字符串对应一个视图名
完成业务控制器的开发后,还需要配置struts2的action,需要配置action的如下三个部分:1)action所处理的URL,2)action组件所对应的实现类,3)action里包含的逻辑视图和物理资源之间的对应关系。
3.struts2的模型组件
模型组件已经超出了MVC框架的覆盖范围。对于struts2框架而言,通常没有为模型组件的实现提供太多的帮助。
通常MVC框架里的业务控制器会调用模型组件的方法来处理用户请求。也就是说,业务逻辑控制器不会对用户请求进行任何实际处理,用户请求最终由模型组件负责处理。业务控制器只是中间负责调度的调度器。这也是action称为控制器的原因。
当控制器需要获取业务逻辑组件实例时,通常是通过工厂模式来获得业务逻辑组件的实例;或者利用其他Ioc容器(如Spring容器)来管理业务逻辑组件实例。
4.struts2视图组件
struts1只能用jsp作为视图技术,struts2允许使用其他模版技术。
在struts.xml中配置action时,需要指定name属性、class属性和系列result子元素,每个result子元素指定一个逻辑视图与物理视图之间的映射。
result子元素中,若不指定type属性,默认使用JSP作为视图资源。
若需要在struts2中使用其他视图技术,则可以在配置result子元素时,指定相应的type属性既可。
5.struts2的运行流程
struts2其实就是webwork2.2的升级,因此struts2的运行流程和webwork的运行流程完全相同,下图是webwork的运行流程
- 大小: 11.5 KB
- 大小: 7.1 KB
分享到:
相关推荐
《Struts2 技术内幕——深入解析Struts2架构设计与实现原理》
struts2学习笔记,非本人所写,但有学习的价值,总结的很好,分享一个!
旺旺教师————Struts2旺旺教师————Struts2旺旺教师————Struts2旺旺教师————Struts2
Struts2 技术内幕——深入解析Struts2架构设计
书中通过大量的示范性实例(全书范例近百个),逐一、详细地讲解了Struts2各知识点的用法,并细致地讲解每个用法的各种参数、选项,可以帮助读者入门到精通。 3.配合案例,快速提高 《Struts 2.1权威指南》最后配备...
核心技术篇首先分析了Struts2中多种具有代表性的设计模式,然后对Struts2中的精华——OGNL表达式引擎和XWork框架的原理及机制进行了全面深入的分析和讲解。运行主线篇首先对Struts2的两大运行主线——初始化主线和...
Struts2 技术内幕——深入解析Struts2架构设计与实现原理
这是学习struts2时记得重点笔记,包括了一些原理,ognl语句的编写,以及如何设置拦截器等等一些基本知识,起到复习和巩固的作用
Struts2.1权威指南——基于WebWork核心的MV Struts2.1权威指南——基于WebWork核心的MV Struts2.1权威指南——基于WebWork核心的MV Struts2.1权威指南——基于WebWork核心的MV
Struts2.1权威指南——基于WebWork核心的MV.Struts2.1权威指南——基于WebWork核心的MV.Struts2.1权威指南——基于WebWork核心的MV.Struts2.1权威指南——基于WebWork核心的MV.
NULL 博文链接:https://changluo.iteye.com/blog/1842213
Struts2.1权威指南——基于WebWork核心的MV Struts2.1权威指南——基于WebWork核心的MV Struts2.1权威指南——基于WebWork核心的MV
Struts2.1权威指南——基于WebWork核心的MV Struts2.1权威指南——基于WebWork核心的MV Struts2.1权威指南——基于WebWork核心的MV
struts2学习笔记总结
本资源包含两个学习Struts的资料: 1.struts2基础.chm 2.Struts2+技术内幕——深入解析Struts2架构设计与实现原理.pdf 欢迎有兴趣的童鞋下载学习。
《Struts2技术内幕:深入解析Struts2架构设计与实现原理》以Struts2的源代码为依托,通过对Struts2的源代码的全面剖析深入探讨了Struts2的架构设计、实现原理、设计理念与设计哲学,对从宏观上和微观上去了解Struts2...
Struts2学习笔记,介绍了struts2的基础部分
Struts2.1权威指南——基于WebWork核心的MVStruts2.1权威指南——基于WebWork核心的MVStruts2.1权威指南——基于WebWork核心的MVStruts2.1权威指南——基于WebWork核心的MV
Struts Recipes中文版——构建稳固的商务应用策略