Struts2的体系结构及执行流程

      Struts2的原理跟AOP一致,可在方法执行前后完成额外的操作。当Web容器接收到一个请求时,它会将此请求传递给一个标准的过滤器链,包括ActionContextCleanUp过滤器以及其他的过滤器(如集成SiteMeth的插件);接下来就会调用核心过滤器FilterDispatcher,然后调用ActionMapper,而ActionMapper提供了在请求和Action直接的映射,它会根据请求的URl区查找是否存在对应的Action调用请求,如果有,则返回一个描述Action映射的ActionMapping对象,如果没有则返回null,而ActionMapping保存了Action的映射信息。接下来FilterDispatcher将控制器转交给在XWork和真正Action之间充当代理的ActionProxy(而在执行Action中因为使用ActionProxy而并非使用真正的Action,所以可以在Action执行前后执行额外的操作),ActionProxy调用配置管理器(ConfigurationManager)从Struts2核心配置文件中读取配置信息,然后创建ActionInvocation对象,ActionInvocation通过调用invoke()方法开始执行Action,在Action执行之前执行所有配置的拦截器,拦截器执行完毕执行Action,在Action中执行具体的方法,调用业务逻辑代码返回字符串,然后进入配置文件找到对应的Result并执行,Result会调用模板(如JSP)来呈现页面。之后拦截器会被再次执行,顺序和Action执行之前相反,最后响应。

以上内容纯属个人观点,有些地方可能有理解瑕疵,欢迎各位大神指教修正。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值