天天看點

通過Filter,對request 和 response 進行處理

1、首先Filter的實作基礎

使用者請求到達,經過Filter到背景,背景處理完成,到Filter,傳回給使用者

Controller是怎麼擷取參數和傳回參數的呢?

Controller主要通過這三個方法擷取參數

Controller主要通過這兩個流輸出結果到前端

是以可以重寫ServletRequest的方法讓Controller在去參數時得到的是我們修改過的參數

重寫ServletResponse的方法讓Controller在往前端寫結果時寫到我們的重寫類裡面,然後處理這些資料,再重新寫到前端

ServletRequest重寫

ServletResponse重寫

<code>//重定向輸出流寫到</code>DataOutputStream

<code>//重定向輸出流寫到</code>ByteArrayOutputStream 

//ByteArrayOutputStream 接受Controller寫入的資料,并以byte[]形式傳回給Filter

//Filter重寫request和response并以chain的形式傳遞給Controller,Controller擷取或輸出資料都講調用RequestWrapper,ResponseWrapper

繼續閱讀