我正在vaadin
创建一个项目,该项目在Tomcat
上运行,但该问题通常涉及一个java web应用程序。该应用程序由许多模块组成,这些模块共同构成了应用程序。我想调整它,以便应用程序运行的方式由url确定。因此我将一个参数附加到url,url似乎是:
http:myproject/anything/foo?mode=sth
。
我在方法onRequestStart()
中提取参数:
String param = request.getParameter("mode");
我根据参数构建应用程序。即参数a1
仅显示模块a1
,参数a2
仅模块a2
,...和参数normal
整个应用程序。但是我对browser cache
有问题,尤其是参数“normal
”。在使用此参数第一次运行之后,浏览器下次无法“实现”新请求并从缓存中显示应用程序,这意味着最后一个模块显示。奇怪的是,其他参数我还没有注意到这个问题。然而,它仍然不可靠,为了使其确保可靠,我必须避免浏览器缓存。什么可以解决方案?我发现一个解决方案是在URL上添加timestamp
,每次都必须更改,以便它始终读取新的url并发出新的请求。我怎么能在java应用程序中附加它?
答案 0 :(得分:1)
为HttpServletResponse
设置适当的缓存控制标头。
response.setDateHeader("Expires", 0);
response.setHeader("Pragma", "no-cache");
response.setHeader("Cache-Control", "no-cache,no-store,must-revalidate");
如果您需要为所有网页执行此操作,请更好地将其实现为Filter
。