浅谈struts2请求处理过程

当一个页面请求过来时, FilterDisptcher通过Dispatcher进行一些初始化工作,并且注入ActionMapper。 FilterDispatcher对请求进行过滤,如果请求符合要求,则返回相应的action配置信息(比如是否URL以.action结尾等),FilterDispatcher调用getMapping方法获得ActionMapping(action的配置信息)。 FilterDispatcher调用serviceAction(request,response,servletContext,mapping),serviceAction通过Dispatcher在一个Map中创建Context对象,并且置入request对象、response对象、session对象、application对象。Dispatcher然后创建一个ActionProxy对象。ActionProxy创建ActionInvoction对象,ActionInvocation首先创建ValueStack,并拷贝Map的内容到Valuestack的context中,随后ActionInvocation创建Action对象,并把Action对象放入valuestack的root中,最后创建ActionContext对象,并把Map的内容也拷贝进入ActionContext对象。ActionContext对象是我们跟request/session/application这些scope对象交互的接口,可以通过ActionContext在这些对象里面存取值。ActionInvocation创建一系列拦截器。至此创建对象完成。 FilterDispatcher执行excute方法,导致ActionProxy调用invoke方法,导致ActionInvocation执行系列拦截器,以及Action方法,ActionInvocation根据配置创建Result对象(能支持不同结果类型的Result对象),ActionInvocation执行excute方法执行呈现操作。 FilterDispatcher将ValueStack放入request Scope中是为了在标签里能获得ValueStack。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值