Filter對Response的改變:HttpServletResponseWrapper的工作原理
阿新 • • 發佈:2018-12-13
7)Filter對Response的改變:HttpServletResponseWrapper的工作原理
馬 克-to-win:前面我們講的知識,主要說的是由於Filter的參與,使用者的訪問路徑被改變的問題。底下我們就要講一點更難的話題,就是Filter 如何改變一個現有的html。比如我寫的新浪部落格,寫完以後,一上傳,內容有時有些改變,誰動的手腳?肯定是新浪公司編了什麼Filter過濾器,把我的 html的內容給改變了。馬克-to-win:現在問題是:這是如何實現的呢?這裡核心問題其實就是如何改變Response?本來我的html在原來的 Response裡,準備返回給客戶端。但現在在Filter當中被改變了。但這又是怎麼改變的呢?這裡涉及到一個 HttpServletResponseWrapper的類例項myWrapper問題。Wrapper英文就是包裹者的意思。正常情況下,我們過去的認 識是:chain.doFilter(request, response);的意思就是訪問完後面的目標資源以後,目標資源把要返回給客戶端的內容放在Response當中。而現在這裡的例子就不同了:通過 chain.doFilter(request, myWrapper