filterChain.doFilter被调用之后,对响应进行任何操作为时已晚。此时,整个响应已经发送给客户端。
您需要在自己的类中构建包装响应,将这些包装传递给
doFilter方法,并处理包装中的所有处理。
已经有一个响应包装器:
HttpServletResponseWrapper您可以扩展。例如:
public class MyResponseRequestWrapper extends HttpServletResponseWrapper{ public MyResponseRequestWrapper(HttpServletResponse response) { super(response); }}您的过滤器:
@Overrideprotected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException { HttpServletResponse myResponse = (HttpServletResponse) response; MyResponseRequestWrapper responseWrapper = new MyResponseRequestWrapper(myResponse); responseWrapper.addHeader("Access-Control-Allow-Origin", "*"); filterChain.doFilter(request, myResponse);}


