在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执行输出方法是否执行。
本文转自 secondriver 51CTO博客,原文链接:http://blog.51cto.com/aiilive/1570723,如需转载请自行联系原作者