本文继续实践“实战-JavaWweb的Servlet和Filter运行关系(一) ”一文中留下的问题。
问题二:
在Filter没有执行chain.doFilter(request,response)方法的时候,response对象输出的内容有那些部分组成的。
在(文一)的基础上对RequestFilter做了略微改动,改动部分如下:
图c-1
说明:请求TestServlet,如何没有参数“p”则不执行china.doFilter方法,如果存在则执行。
下面对这两种情况进行实验后的结果图所示:
图c-2
图c-3
从图c-2和c-3看TestServlet没有执行,因为请求没有参数“p”,输出内容由Response对象在Filter的doFilter方法执行前+后的输出内容组成。
图c-4
从图c-4看请求有参数“p”,并且执行了TestServlet,输出内容由Response对象在Filter的doFilter方法执行前+Serlvet执行+doFilter执行后的输出内容组成。
由此可知,输出的内容由Response对象在Filter中+Servlet中输出的内容组成。至于那一部分内容要最终是否输出取决于Response执行输出方法是否执行。
本文出自 “野马红尘” 博客,谢绝转载!
实战-JavaWweb的Servlet和Filter运行关系(三)
原文地址:http://aiilive.blog.51cto.com/1925756/1570723