一尘不染

如何通过注释在Spring MVC 3中设置标头不缓存

spring-mvc

如何通过注释在Spring MVC 3中设置标头没有缓存?不是

  response.setHeader("Pragma","No-cache");     
  response.setHeader("Cache-Control","no-cache");     
  response.setDateHeader("Expires",   0);

阅读 374

收藏
2020-06-01

共1个答案

一尘不染

没有这样的选择。您可以使用拦截器:

<mvc:annotation-driven/>
<mvc:interceptors>
    <bean id="webContentInterceptor" 
          class="org.springframework.web.servlet.mvc.WebContentInterceptor">
        <property name="cacheSeconds" value="0"/>
        <property name="useExpiresHeader" value="true"/>
        <property name="useCacheControlHeader" value="true"/>
        <property name="useCacheControlNoStore" value="true"/>
    </bean>
</mvc:interceptors>

(从这里拍摄)

一方面,没有这种注释是合乎逻辑的。spring-mvc方法的注释主要是让容器确定要调用的方法(受请求标头,请求url或方法限制)。控制响应不属于此类别。

另一方面-
是的,拥有这些将很方便,因为在对控制器进行单元测试时,它与测试HTTP标头无关(或者是?)。还有@ResponseBody@ResponseStatus,它们确实指定了一些响应属性。

2020-06-01