Filter中文意思為過濾器。顧名思義,過濾器可在瀏覽器以及目標資源之間起到一個過濾的作用。例如:水凈化器,可以看成是生活中的一個過濾器,他可以將污水中的雜質過濾,從而使進入的污水變成凈水。
對於WEB應用來說,過濾器是一個駐留在服務器中的WEB組件,他可以截取客戶端和WEB資源之間的請求和響應信息。
WEB資源可能包括Servlet、JSP、HTML頁面等
創建一個新的Filter文件
配置web.xml文件、Filter的配置和Servlet的配置很像,但是Filter的<url-pattern>,下面是精確攔截:指定具體的攔截路徑,也可以*.jsp:攔截所有的jsp文件或者/web/*:攔截web文件下的所有文件。
在doFilter中chain.doFilter是放行的意思
當有多個Filter過濾時,在web.xml中<url-pattern>的配置前后決定了過濾執行的先后順序。
Filter的生命周期和Servlet類似
構造器:創建Filter實例是調用,Filter實例服務器一旦啟動就會被創建
init():實例創建后馬上被調用,用來對Filter做一些初始化的操作
doFilter():Filter的主要方法,用來完成過濾器主要功能的方法,每次訪問目標資源時都會調用。
destroy():服務器停止時調用,用來釋放資源。