gpt4 book ai didi

url - 避免在 Java Web 应用程序中使用浏览器缓存

转载 作者:行者123 更新时间:2023-11-28 23:01:30 25 4
gpt4 key购买 nike

我正在 vaadin 中创建一个在 Tomcat 上运行的项目,但问题通常涉及 java web 应用程序。该应用程序由许多模块组成,这些模块共同构成了应用程序。我想调整它,以便应用程序运行的方式由 url 确定。因此,我将一个参数附加到 url,该 url 似乎是:

http:myproject/anything/foo?mode=sth

我在方法 onRequestStart() 中提取参数:

String param = request.getParameter("mode");

我根据参数构建应用程序。 IE。参数 a1 仅显示模块 a1,参数 a2 仅显示模块 a2,... 和参数 normal 整个应用程序。但是,浏览器缓存 有问题,尤其是参数“normal”。第一次使用此参数运行后,所有下一次浏览器都不会“意识到”新请求并显示缓存中的应用程序,这意味着最后显示的模块。奇怪的是,在其他参数上我还没有注意到这个问题。尽管如此,它仍然不可靠,为了使其可靠,我必须避免浏览器缓存。什么是解决方案?我发现一种解决方案是在 url 上添加一个 timestamp,它必须每次都更改,以便它始终读取一个新的 url 并发出一个新的请求。我怎么能在java应用程序中附加它呢?

最佳答案

为您的 HttpServletResponse 设置适当的缓存控制 header 。

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

如果您需要为所有页面执行此操作,最好将其实现为 Filter

关于url - 避免在 Java Web 应用程序中使用浏览器缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18388612/

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