gpt4 book ai didi

java - 我想根据 Spring MVC 中的 Http Status 代码向 Http Response 添加 header

转载 作者:行者123 更新时间:2023-12-01 11:44:41 27 4
gpt4 key购买 nike

我必须基于 Http Response 代码将 Cache-Control header 添加到在 Spring MVC 中设计的 REST API 中。如果响应代码为 200,则添加 header ,否则不添加。

我不希望客户端缓存响应,以防它不是 200。

这在过滤器/拦截器中是不可能的,因为响应已经从 Controller 提交,因此无法更改响应状态。

还有其他方法可以在 Controller 后添加 header 吗?

最佳答案

您可以扩展org.springframework.web.filter.OncePerRequestFilter来添加cache-control header 。

public class CacheControlHeaderFilter extends OncePerRequestFilter {
@Override
protected void doFilterInternal(HttpServletRequest request,
HttpServletResponse response, FilterChain filterChain) {
// Add the header here based on the response code
}
}

在您的配置中将此过滤器声明为 spring bean。

<bean id="cacheControlHeaderFilter" class="*.*.CacheControlHeaderFilter" />

在 web.xml 中插入过滤器:

<filter>
<filter-name>cacheControlHeaderFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>

<filter-mapping>
<filter-name>cacheControlHeaderFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

关于java - 我想根据 Spring MVC 中的 Http Status 代码向 Http Response 添加 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29251549/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com