Struts2工作原理

Struts2工作原理

看一下Struts2官方给出的体系结构图
Struts2体系结构图
解释
+ 客户端发出一个HttpServletRequest请求(action或jsp)。
+ 请求经过一系列的过滤器链(过滤器链包括可选的 ActionContextCleanUp 过滤器,用于系统整合技术,如 SiteMesh 插件)。
+ FilterDispather是struts2的核心控制器,此过滤器须在web.xml中进行配置,通常为过滤器链中的最后一个过滤器。

<!-- 配置struts2的核心过滤器 -->
<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>
  • 通过FilterDispatcher查找ActionMapper,以确定这个请求是否需要调用某个 Action。
  • 如果ActionMapper确定需要调用某个Action,FilterDispatcher 将控制权交给ActionProxy。
  • ActionProxy依照框架的配置文件(struts.xml),找到需要调用的Action类
  • ActionProxy会创建一个ActionInvocation的实例。
  • ActionInvocation会先调用相关的拦截器(Action 调用之前),最后调用 Action。
  • Action调用返回结果Result,根据之前的配置文件(struts.xml),查找响应的转发路径(此路径可以是一个jsp文件或者FreeMarker的模版技术的网页呈现,也可以是一个Action类等)。
  • 按照相反的方向调用相关的拦截器链(Action调用之后),返回一个HttpServletResponse,然后再通过过滤器链返回给客户端进行呈现。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值