當前位置:編程學習大全網 - 源碼下載 - spring過濾器和攔截器的區別

spring過濾器和攔截器的區別

(1)過濾器:

依賴於servlet容器,是JavaEE標準,是在請求進入容器之後,還未進入Servlet之前進行預處理,並且在請求結束返回給前端這之間進行後期處理。在實現上基於函數回調,可以對幾乎所有請求進行過濾,但是缺點是壹個過濾器實例只能在容器初始化時調用壹次。使用過濾器的目的是用來做壹些過濾操作,獲取我們想要獲取的數據,比如:在過濾器中修改字符編碼;在過濾器中修改HttpServletRequest的壹些參數,包括:過濾低俗文字、危險字符等

關於過濾器的壹些用法可以參考我寫過的這些文章:

繼承HttpServletRequestWrapper以實現在Filter中修改HttpServletRequest的參數:

在SpringMVC中使用過濾器(Filter)過濾容易引發XSS的危險字符:

(2)攔截器:

攔截器不依賴與servlet容器,依賴於web框架,在SpringMVC中就是依賴於SpringMVC框架。在實現上基於Java的反射機制,屬於面向切面編程(AOP)的壹種運用。由於攔截器是基於web框架的調用,因此可以使用spring的依賴註入(DI)獲取IOC容器中的各個bean,進行壹些業務操作,同時壹個攔截器實例在壹個controller生命周期之內可以多次調用。但是缺點是只能對controller請求進行攔截,對其他的壹些比如直接訪問靜態資源的請求則沒辦法進行攔截處理,攔截器功在對請求權限鑒定方面確實很有用處

  • 上一篇:源pb
  • 下一篇:怎麽學編程,給些學步驟步驟和方法,比如像VB,c c++易語言,匯編語言,DELPHL,和JAVA
  • copyright 2024編程學習大全網