SpringBoot使用Filter過濾器處理是否登錄的過濾時,用response.sendRedirect()轉發報錯
阿新 • • 發佈:2019-01-20
session call epo 後臺 bubuko commit rect bsp ann
1、使用response.sendRedirect("/login")時報錯,控制臺報錯如下:
Cannot call sendError() after the response has been committed。字面意思是:提交響應之後,無法再調用。
我正在做一個springboot的項目,使用Filter過濾器在過濾一些請求url時,因為有些頁面的url請求地址是要登錄之後才能進入的,所以用一個全局的過濾器Fitler,過判斷此url是否有必要放行。當請求此url地址時,從session中取登錄用戶的數據為null,我就要把此次請求重定向到login登錄頁面。轉發login登錄頁面使用reponse的sendRedirect()方法時,出現了上面的報錯。
過濾器代碼:
後臺控制臺報錯:
重定向登錄頁面失敗:
解決辦法:
經過百度後找到原因:使用response.sendRedirect("/login")後,下面不必再執行任何代碼,因為已經執行重定向到login請求對應的登錄頁面了,修改後代碼如下:(並已重定向成功到login登錄頁面)
SpringBoot使用Filter過濾器處理是否登錄的過濾時,用response.sendRedirect()轉發報錯