iT邦幫忙

2023 iThome 鐵人賽

DAY 20
1
Software Development

掌握Java神器,駕馭SpringBoot猛獸系列 第 20

第20日 介紹攔截器與過濾器

  • 分享至 

  • xImage
  •  

昨日對建立會員API進行重構,加強請求安全性,除了使用Lombok對DAO物件進行封裝,同時也運用了Validation套件對請求進行驗證,並配置攔截器捕獲例外錯誤,對驗證失敗錯誤進行統一處理,大幅提升程式碼的複用性,今日來介紹攔截器和兄弟過濾器,說明Spring MVC處理客戶端請求,會經過哪些程序,以及怎麼確保使用者安全性

過濾器(Filters)

講到過濾不免會聯想到篩選請求,過濾器的職責就是在請求進入控制器前後,額外添加多個執行任務,任務的執行存在排序關係,能根據實際需求對過濾器進行排序,可以在請求處理過程,添加其他操作如日誌紀錄、請求內容修改,或是阻止請求進入下個作業流程,確保網站應用程式執行的安全性,下個章節會講解到的Spring Security則是利用這個特性,實現使用者身分驗證授權,確保當前請求使用者的訪問權限

攔截器(Intercptors)

攔截器的用途與過濾器類似,可以在控制方法執行前後追加其他功能,最大的差異在於,過濾器還是專職處理Servlet層級的內容,即進入Spring MVC處理範圍前,攔截器則是在Spring MVC範圍內進行處理,因此可以使用Spring的提供IOC容器,或AOP實現相關邏輯實作,由於攔截器的執行範圍接近請求開始與結束

因此多半會讓過濾器,進入核心處理邏輯前進行前處理,在Spring MVC處理完成邏輯後,至請求響應給客戶端之前做後處理,反之攔截器在Spring骨幹內,關注的範圍接近控制器調用方法前後,如:最初講解的@controller,方法時會經過ViewResolver取找相應的渲染樣板,並將伺服器的資料套用到模板中


上一篇
第19日 用Lombok讓你的雙手解放
下一篇
第21日 來做有Jwt的API
系列文
掌握Java神器,駕馭SpringBoot猛獸30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言