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

全國咨詢/投訴熱線:400-618-4000

問答>JavaEE>Filter過濾器有哪些高級應(yīng)用?

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)。

和我們在線交談!