在过滤器中设置响应状态码可以通过修改`HttpServletResponse`对象的状态码来实现。以下是一个示例代码: ```java @Component public class MyFilter implements Filter { @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest httpRequest = (HttpServletRequest) request; HttpServletResponse httpResponse = (HttpServletResponse) response; // 继续处理请求 chain.doFilter(request, response); // 获取控制器返回的ResponseEntity对象 Object responseEntity = httpRequest.getAttribute("responseEntity"); if (responseEntity instanceof ResponseEntity) { // 获取响应状态码 HttpStatus status = ((ResponseEntity<?>) responseEntity).getStatusCode(); // 设置响应状态码 httpResponse.setStatus(status.value()); } } // 其他方法... } ``` 在过滤器中,首先将`ServletRequest`和`ServletResponse`对象转换为`HttpServletRequest`和`HttpServletResponse`对象。然后,通过`chain.doFilter(request, response)`继续处理请求。 在处理完请求后,通过`httpRequest.getAttribute("responseEntity")`获取控制器返回的`ResponseEntity`对象。如果存在该对象,则通过`getStatusCode()`方法获取响应状态码,并通过`setStatus()`方法设置响应状态码。 请注意,上述代码中的`"responseEntity"`是一个示例属性名,你需要根据实际情况修改为你的控制器返回的`ResponseEntity`对象在请求属性中的名称。