gpt4 book ai didi

java - Spring MVC 如何处理单页应用程序的 header ?

转载 作者:行者123 更新时间:2023-12-01 15:22:51 25 4
gpt4 key购买 nike

昨天我问了this问题并得到了一些非常好的反馈。总结一下我的情况,我正在尝试将禁止缓存的 HTTP 响应 header 添加到我的 Spring MVC Web 应用程序(我意外继承的项目)。

因此,根据回答者(以及最终@Bozho)的建议,我将其添加到我的 Spring 配置文件中:

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

我在本地重新构建了我的应用程序,并在 Firefox 中将其打开,这样我就可以使用 Firebug 来测试随 HTTP 响应返回的 header 。

对我来说不幸的是,最初的开发人员旨在使其成为“单页 Web 应用程序”,每个实际 JSP 页面约有 40 多个 AJAX 调用。

我不仅没有在这 40 个中看到我正在寻找的 Cache-ControlExpires 等 header + AJAX 请求,但我担心由于每个 JSP 页面有超过 1 个 AJAX 请求,Spring 拦截器不知道要向哪个 AJAX 调用添加 header 。我没有看到任何错误消息或日志输出来表明 Spring 不喜欢我的配置等。一切似乎都运行良好......它只是不工作!

  • 我是否配置错误?如果没有,这不起作用的原因是什么(为什么拦截器没有启动)?
  • 多个 AJAX 调用是否会导致 Spring MVC 请求拦截器表现异常?

提前感谢您的帮助!

最佳答案

如果您的配置与所示完全相同,则您的拦截器声明将不会生效。您需要将拦截器声明放入 <mvc:interceptors> ,参见Bozho's answer .

关于多个 AJAX 查询,只要这些查询由 Spring MVC Controller 处理,就应该没问题。默认情况下,拦截器会拦截所有发送到 Controller 的请求,但如果您愿意,您可以将其范围缩小到特定的 URL 模式。

关于java - Spring MVC 如何处理单页应用程序的 header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10621631/

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