教育行業(yè)A股IPO第一股(股票代碼 003032)

全國(guó)咨詢(xún)/投訴熱線:400-618-4000

問(wèn)答>JavaEE>Filter過(guò)濾器有哪些高級(jí)應(yīng)用?

Filter過(guò)濾器有哪些高級(jí)應(yīng)用?

來(lái)源傳智教育2022年04月21日 15時(shí)28分47秒

  Filter過(guò)濾器除了可以獲取到代表用戶(hù)請(qǐng)求和響應(yīng)的request、response對(duì)象,還可以對(duì)request和response對(duì)象中的任何信息進(jìn)行修改,可以通過(guò)包裝類(lèi)來(lái)實(shí)現(xiàn)。在Servlet API中,提供了HttpServletRequestWrapper和HttpServletResponseWrapper兩個(gè)類(lèi),它們分別是request和response對(duì)象的包裝類(lèi)。

  HttpServletRequestWrapper和HttpServletResponseWrapper作為request和response對(duì)象的包裝類(lèi),都采用了裝飾設(shè)計(jì)模式。所謂裝飾設(shè)計(jì)模式,指的是通過(guò)包裝類(lèi)的方式,動(dòng)態(tài)增強(qiáng)某個(gè)類(lèi)的功能。想要更好地理解裝飾設(shè)計(jì)模式,需要了解裝飾設(shè)計(jì)模式的3個(gè)特點(diǎn)。

  (1)包裝類(lèi)要和被包裝對(duì)象實(shí)現(xiàn)同樣的接口。

  (2)包裝類(lèi)持有一個(gè)被包裝對(duì)象,例如,在HttpServletRequestWrapper定義的構(gòu)造方法中,需要傳遞一個(gè)HttpServletRequestWrapper類(lèi)型的參數(shù)。

  (3)包裝類(lèi)在實(shí)現(xiàn)接口的過(guò)程中,對(duì)于不需要包裝的方法原封不動(dòng)地調(diào)用被包裝對(duì)象的方法來(lái)實(shí)現(xiàn),對(duì)于需要包裝的方法自己實(shí)現(xiàn)。

和我們?cè)诰€交談!