Java 我想根据SpringMVC中的Http状态代码向Http响应添加一个头
我必须根据Http响应代码向SpringMVC中设计的RESTAPI添加缓存控制头。如果响应代码为200,则添加标题,否则不添加 我不希望客户端缓存响应,以防响应不是200 这在过滤器/拦截器中是不可能的,因为响应已经从控制器提交,所以无法更改响应状态Java 我想根据SpringMVC中的Http状态代码向Http响应添加一个头,java,spring,http,spring-mvc,jakarta-ee,Java,Spring,Http,Spring Mvc,Jakarta Ee,我必须根据Http响应代码向SpringMVC中设计的RESTAPI添加缓存控制头。如果响应代码为200,则添加标题,否则不添加 我不希望客户端缓存响应,以防响应不是200 这在过滤器/拦截器中是不可能的,因为响应已经从控制器提交,所以无法更改响应状态 是否有其他方法在控制器之后添加头?您可以扩展org.springframework.web.filter.OncePerRequestFilter以添加缓存控制头 public class CacheControlHeaderFilter ext
是否有其他方法在控制器之后添加头?您可以扩展
org.springframework.web.filter.OncePerRequestFilter
以添加缓存控制
头
public class CacheControlHeaderFilter extends OncePerRequestFilter {
@Override
protected void doFilterInternal(HttpServletRequest request,
HttpServletResponse response, FilterChain filterChain) {
// Add the header here based on the response code
}
}
在您的配置中将此过滤器声明为Springbean
<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>
cacheControlHeaderFilter
org.springframework.web.filter.DelegatingFilterProxy
cacheControlHeaderFilter
/*