如题,有时候,我们会遇到使用 Postman 测试在 Spring Boot 的后端 request 一次但是 response 有两次(或者多次)返回结果的情况(即返回的 response 里有两个 json 体)。一种可能导致这种情况的原因便是 Filter 编写的问题。
package servletbean;
public class encodefilter implements Filter {public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {CharacterEncoding()==null) {System.out.println(encoding);request.setCharacterEncoding(encoding);}chain.doFilter(request, response);//到下一个链}public void init(FilterConfig fConfig) throws ServletException {fig=fConfig;encodingInitParameter("encoding");//获得目标编码格式}
}
上面是一个 Filter 的例子,我们需要注意到的一个点是 chain.doFilter
会将请求转发给过滤器链下一个 Filter,并且这个方法并不会return
,所以 doFilter
之后,后续的代码依旧会执行。
如果在 doFilter
后并没有 return
,而且你的 Filter 里恰好存在多个 do.Filter
,就会导致请求的结果返回多个 json 体。
所以,请务必确保 doFilter
后一定要 return
。
chain.doFilter(request, response);//到下一个链
return;
chain.doFilter(request,response)含义
本文发布于:2024-01-29 03:23:02,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170646978312356.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |