谈谈 Tomcat 请求处理流程
allocate() 用来加载并初始化 Servlet,值的一提的是 Servlet 并不都是单例的,当 Servlet 实现了 SingleThreadModel 接口后,StandardWrapper 会维护一组 Servlet 实例,这是享元模式。当然了 SingleThreadModel在 Servlet 2.4 以后就弃用了。 createFilterChain() 方法会从 StandardContext 中获取到所有的过滤器,然后将匹配 Request URL 的所有过滤器挑选出来添加到 filterChain 中。 doFilter() 执行过滤链,当所有的过滤器都执行完毕后调用 Servlet 的 service() 方法。 Reference 《How Tomcat works》 https://www.amazon.com/How-Tomcat-Works-Budi-Kurniawan/dp/097521280X 《Tomcat 架构解析》– 刘光瑞 Tomcat-9.0-doc https://tomcat.apache.org/tomcat-9.0-doc/index.html apache-tomcat-9.0.0.M22-src tomcat架构分析 (connector NIO 实现) (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |