如何通过注释在弹簧mvc 3中设置标题无缓存
2022-09-01 03:05:47
如何通过注释在春季mvc 3中设置标题没有缓存?不是
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);
如何通过注释在春季mvc 3中设置标题没有缓存?不是
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);
没有这样的选择。您可以使用拦截器:
<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
要覆盖某些控制器映射的设置,请使用 WebContentInterceptor 上的 cacheMappings 属性对象
<bean id="webContentInterceptor"
class="org.springframework.web.servlet.mvc.WebContentInterceptor">
<property name="cacheSeconds" value="2100" />
<property name="useExpiresHeader" value="true" />
<property name="useCacheControlHeader" value="true" />
<property name="useCacheControlNoStore" value="true" />
<property name="cacheMappings">
<props>
<prop key="/myUncachedController">0</prop>
</props>
</property>