Filter過濾器有哪些高級應(yīng)用?
來源傳智教育2022年04月21日 15時28分47秒
Filter過濾器除了可以獲取到代表用戶請求和響應(yīng)的request、response對象,還可以對request和response對象中的任何信息進行修改,可以通過包裝類來實現(xiàn)。在Servlet API中,提供了HttpServletRequestWrapper和HttpServletResponseWrapper兩個類,它們分別是request和response對象的包裝類。
HttpServletRequestWrapper和HttpServletResponseWrapper作為request和response對象的包裝類,都采用了裝飾設(shè)計模式。所謂裝飾設(shè)計模式,指的是通過包裝類的方式,動態(tài)增強某個類的功能。想要更好地理解裝飾設(shè)計模式,需要了解裝飾設(shè)計模式的3個特點。
(1)包裝類要和被包裝對象實現(xiàn)同樣的接口。
(2)包裝類持有一個被包裝對象,例如,在HttpServletRequestWrapper定義的構(gòu)造方法中,需要傳遞一個HttpServletRequestWrapper類型的參數(shù)。
(3)包裝類在實現(xiàn)接口的過程中,對于不需要包裝的方法原封不動地調(diào)用被包裝對象的方法來實現(xiàn),對于需要包裝的方法自己實現(xiàn)。
最新問答
- 2022年06月30日黑盒測試與白盒測試的區(qū)別是啥?
- 2022年06月30日Hive的安裝模式有幾種?
- 2022年06月29日Flume系統(tǒng)要求是什么?
- 2022年06月29日數(shù)據(jù)發(fā)布與訂閱有哪些主要應(yīng)用場景?
- 2022年06月29日Zookeeper集群角色有哪三種?
- 2022年06月29日hadoop1.x和hadoop2.x的區(qū)別是什么,做了哪些改進?
- 2022年06月28日znode有哪兩種節(jié)點?
- 2022年06月28日非全新集群選舉的過程是什么樣的?
- 2022年06月28日applicationmaster是什么?
- 2022年06月28日yarn的工作流程是什么?
相關(guān)問答
- 2022年04月21日Filter實現(xiàn)頁面靜態(tài)化的意義是什么?
- 2022年04月21日想在entity包里寫一個用于封裝用戶信息的程序怎么實現(xiàn)?有大神會嗎?
- 2022年04月21日Cookie是如何實現(xiàn)用戶登錄的?
- 2022年04月20日FilterConfig接口具有哪些功能?
- 2022年04月20日Filter鏈?zhǔn)鞘裁矗?/a>
- 2022年04月20日如何使用通配符“*”攔截用戶的所有請求?
- 2022年03月25日Math類的常用方法有哪些?
- 2022年03月22日Java中的封裝是個啥?
- 2022年03月17日Java培訓(xùn)線上線下有什么區(qū)別么?
- 2022年03月17日List接口是啥??有大神知道嗎?