tomcat接收一个请求后,这个请求就会在容器间流动,最后肯定tomcat要返回结果给用户,请问返回结果是在哪段程序里进行的呢?
也就是处理请求的终点在哪里?
有没有一个统一的终点?也就是不管是处理jsp请求也好,servlet请求也好,还是其他的请求,最后返回结果时都要到达这个终点?
最好能以tomcat6源码进行说明。
[b]问题补充:[/b]
谢谢firefly.li的关注。我觉得请求处理的起点和终点好像不在同一个方法中,监听到一个请求后,把这个请求交给下一个容器处理后,应该就返回到起点所在的方法中了。当然我对tomcat的源码理解得不是很透彻,如果有这方面的达人,还望不吝赐教。
[b]问题补充:[/b]
谢谢dwangel的关注。你说的这些我也了解,但是不知道具体执行结果返回的程序段都在哪。我现在是想在源码段记录tomcat处理每个请求的时间,不知道该在哪里截取endTime。
一般来说 filter的调用就是嵌套的。
你可以做一个filter,
FilterChain返回就是一次request的返回了。
tomcat 里就有很好的例子
[b]apache-tomcat-5.5.27\webapps\servlets-examples\WEB-INF\classes\filters\ExampleFilter.java[/b]
其他版本 的类似
[b]webapps\servlets-examples\WEB-INF\classes\filters\ExampleFilter.java[/b]
起点和终点应该是在一个方法里面吧。lz能找到起点吗?
调用是层层嵌套的。
一般终点是个servlet,但是,返回给浏览器的输出 不一定在调用终点。
中途 对response处理,也可能返回结果 。