【Struts2学习】(1)Struts2工作原理

Struts2是什么?

Apache Struts是一个免费,开源,MVC框架;创建优雅,现代Java web应用程序。

它有利于约定优于配置,使用一个插件是可扩展的架构,和附带插件支持,AJAX和JSON。


Struts2原理:

Struts2在web.xml配置

<pre name="code" class="html"><span style="font-size:18px;">  <filter>
  	<filter-name>struts2</filter-name>
  	<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>	
  <filter-mapping>
  	<filter-name>struts2</filter-name>
  	<url-pattern>/*</url-pattern>
  </filter-mapping></span>
 


1.首先用户通过HttpServletRequest用户请求发送过来;


2.这个请求经过一系列的过滤器 Fileter,如:ActionContextCleanUp(ActionContextCleanUp可选过滤器这个过滤器主要用于和其他的框架进行集成;例如SiteMesh)、Other filters、FilterDispatcher;


注:StrutsPrepareAndExecuteFilter过滤器在Struts2.1.3就把FilterDispatcher替代了

为什么FilterDispatcher会被代替呢?

我们往往会放在struts2顶端写我们自己的过滤器(filter),如果我想在执行Action之前去写过滤器,

FilterDispatcher是执行不了的,StrutsPrepareAndExecuteFilter就可以做到,在执行action之前执行我们自己写的过滤器。


3.FilterDispatcher是Struts2控制器的核心,它通常是过滤器链中的最后一个过滤器,请求发送到FilterDispatcher后,FilterDispatcher则把请求交到ActionMapper是否需要调用某个Action来出来这个Request(一般根据url的后缀是不是.action来判断);


4.如果ActionMapper决定需要调用某个Action,FilterDispatcher则把请求交到ActionProxy,有它进行处理;


5.ActionProxy通过configurationManager(它会访问struts.xml)询问框架的配置文件,找到需要调用的Action;


6.ActionProxy创建一个ActionInvocation实例,而ActionInvocation通过代理模式调用Action,(在调用之前会更加配置文件加载相关的所有Interceptor拦截器);


7.Action执行完毕之后,返回一个result字符串,此时再按照相反的顺序通过Interceptor拦截器;


8.最后ActionInvocation负责根据struts.xml中配置的result元素,找到返回值对应的result,决定进行下一步输出。




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值