0
点赞
收藏
分享

微信扫一扫

tomcat applicationDispatcher forward

示意图

tomcat applicationDispatcher forward_apache

简述

1.  请求在Host组件被StandardHostValve处理,依次调用后续其余组件,访问filterchain、servlet

2.  如果在后续请求中抛错,则被StandardHostValue try catch拦截异常处理,

3.  创建ApplicationDispatcher,调用forward方法

4.  触发filterchain的调用,并触发DispatcherServlet的service方法,完成servlet的寻找。

5.  根据dispatcherServlet中的urlMapping,找到对应的handler (等同于controller中的某个对应的方法) 。例 /error 请求对应 内置的BasicErrorController类

关键代码入口

1.  StandardHostValve 处理异常请求的方法

org.apache.catalina.core.StandardHostValve#custom

作用:1. 创建ApplicationDispatcher 2.触发forward方法

2.  org.apache.catalina.core.ApplicationDispatcher#invoke

作用:1.初始servlet 2.创建filterChain 3.触发filterChain调用

3.  org.apache.catalina.core.ApplicationFilterChain#internalDoFilter

作用:1.完成filters依次调用 2.触发servlet调用service

举报

相关推荐

0 条评论