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