可以说我有一个Spring REST API,该代码在整个代码中都有很多返回。
如果我想在发送的每个响应中都返回两个特定的标头,那么与返回之前手动将其手动添加到每个响应中相比,我如何以一种更智能的方式来做到这一点?
有没有一种机制可以让我在发送响应之前捕获响应并添加标题?
编辑:对于未来的访客问这个问题。这里没有任何答案实际上会导致拦截器正常工作。我建议去别处。
正确的答案是使用过滤器。拦截器对此并不正确,无论网上有人怎么说。拦截器无法正常工作。
可行的解决方案是创建一个过滤器,如下所示:
public class myAwesomeFilter extends OncePerRequestFilter { @Override protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException { response.addHeader("Cache-Control", "no-cache, no-store, must-revalidate"); response.addHeader("pragma", "no-cache"); filterChain.doFilter(request, response); } }
然后,在web.xml中-您需要以下内容:
<filter> <filter-name>sensitiveFormHeaderFilter</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> </filter>