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