SpringBoot使用Filter過濾器處理是否登錄的過濾時,用response.sendRedirect()轉發報錯


1、使用response.sendRedirect("/login")時報錯,控制台報錯如下:

  Cannot call sendError() after the response has been committed。字面意思是:提交響應之后,無法再調用。

其實就是response調用了兩次

  

我正在做一個springboot的項目,使用Filter過濾器在過濾一些請求url時,因為有些頁面的url請求地址是要登錄之后才能進入的,所以用一個全局的過濾器Fitler,過判斷此url是否有必要放行。當請求此url地址時,從session中取登錄用戶的數據為null,我就要把此次請求重定向到login登錄頁面。轉發login登錄頁面使用reponse的sendRedirect()方法時,出現了上面的報錯。

 

過濾器代碼:

 

后台控制台報錯:

 

 

重定向登錄頁面失敗:

 

 

 

 

解決辦法:

  經過百度后找到原因:使用response.sendRedirect("/login")后,下面不必再執行任何代碼,因為已經執行重定向到login請求對應的登錄頁面了,修改后代碼如下:(並已重定向成功到login登錄頁面)

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM