0
我必須添加Cache-Control頭到基於Http Response代碼的Spring MVC中設計的rest API。如果響應代碼是200,請添加標題,否則不添加。我想添加一個頭到HTTP響應,基於Spring MVC中的Http狀態代碼
我不想在客戶端緩存響應,如果它不是200
這是不可能在過濾器/攔截器,作爲響應已經從控制器提交,因此不能改變響應狀態。
是否有任何其他方式來添加標題後控制器?
我必須添加Cache-Control頭到基於Http Response代碼的Spring MVC中設計的rest API。如果響應代碼是200,請添加標題,否則不添加。我想添加一個頭到HTTP響應,基於Spring MVC中的Http狀態代碼
我不想在客戶端緩存響應,如果它不是200
這是不可能在過濾器/攔截器,作爲響應已經從控制器提交,因此不能改變響應狀態。
是否有任何其他方式來添加標題後控制器?
您可以擴展org.springframework.web.filter.OncePerRequestFilter
以添加cache-control
標題。
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>