在Filter沒有執行chain.doFilter(request,response)方法的時候,response對象輸出的内容有那些部分組成的。
在(文一)的基礎上對RequestFilter做了略微改動,改動部分如下:
<a href="http://s3.51cto.com/wyfs02/M02/4D/9A/wKioL1RUkISjzUpZAABceMbTEfs160.jpg" target="_blank"></a>
圖c-1
說明:請求TestServlet,如何沒有參數“p”則不執行china.doFilter方法,如果存在則執行。
下面對這兩種情況進行實驗後的結果圖所示:
<a href="http://s3.51cto.com/wyfs02/M02/4D/9A/wKiom1RUkNjixUHjAAFex_Uso60000.jpg" target="_blank"></a>
圖c-2
<a href="http://s3.51cto.com/wyfs02/M01/4D/9A/wKioL1RUkXqwoCLXAACRdwHbu7U314.jpg" target="_blank"></a>
圖c-3
從圖c-2和c-3看TestServlet沒有執行,因為請求沒有參數“p”,輸出内容由Response對象在Filter的doFilter方法執行前+後的輸出内容組成。
<a href="http://s3.51cto.com/wyfs02/M00/4D/9A/wKioL1RUkTSwP4X3AAF9EXiBb1U411.jpg" target="_blank"></a>
圖c-4
從圖c-4看請求有參數“p”,并且執行了TestServlet,輸出内容由Response對象在Filter的doFilter方法執行前+Serlvet執行+doFilter執行後的輸出内容組成。
由此可知,輸出的内容由Response對象在Filter中+Servlet中輸出的内容組成。至于那一部分内容要最終是否輸出取決于Response執行輸出方法是否執行。
本文轉自 secondriver 51CTO部落格,原文連結:http://blog.51cto.com/aiilive/1570723,如需轉載請自行聯系原作者