Java 浏览器上的“后退”按钮不会将控制流发送到API

Java 浏览器上的“后退”按钮不会将控制流发送到API,java,jsp,redirect,back,Java,Jsp,Redirect,Back,我有两个API: /登录返回登录jsp /主页返回主页jsp 功能: 最初,我在登录屏幕上,按下登录按钮,我进入主屏幕 当我在主页屏幕上并使用“注销”按钮注销时,我会被重定向到“登录”屏幕 在/home API中,以下是条件: if (userLoggedIn()) { return new ModelAndView("/homePage"); } else { return new ModelAndView("/loginPage"); } 问题: 当我注销并转到登录页面时,我单击浏

我有两个API:

/登录返回登录jsp /主页返回主页jsp 功能:

最初,我在登录屏幕上,按下登录按钮,我进入主屏幕

当我在主页屏幕上并使用“注销”按钮注销时,我会被重定向到“登录”屏幕

在/home API中,以下是条件:

if (userLoggedIn()) {
  return new ModelAndView("/homePage");
} else {
  return new ModelAndView("/loginPage");
}
问题:

当我注销并转到登录页面时,我单击浏览器的后退按钮。 我被重定向到主页。不正确

然而,如果我直接使用url打开主页,我会被重定向到正确的登录页面

我调试了应用程序,发现按下后退按钮时,控件甚至没有进入/home API


如何确保按下“后退”按钮时,屏幕重定向到登录页面?

将[OutputCacheNoStore=true,Duration=0,VaryByParam=None]设置为操作。这样,请求也将在“后退”按钮上发出,您的功能将执行其余的重定向。

找到了解决方案。我的问题已经解决了

在servlet中,为无缓存添加以下行

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