我有一个Struts 1 Web应用程序,我想实现post / redirect / get,以便在用户按下浏览器上的后退/前进按钮时强制重定向。主要问题是我们想要实现会话超时。当会话过期时,我们将重定向到“sessionExpired”页面,但如果用户点击浏览器,我们希望隐藏上一页的信息。我已添加代码以删除操作上的缓存:
response.setHeader("Cache-Control", "private, no-store, no-cache, must-revalidate");
response.setHeader("Pragma", "no-cache");
但是这将在浏览器中抛出“未找到缓存页面”,我们希望运行重定向到页面而不是“无缓存”页面的内容。这就是我试图实施PRG的原因。
答案 0 :(得分:2)
当用户按下“返回”按钮时,Post/Redirect/Get pattern不包括强制重定向。它包括在成功发送POST请求后发送重定向。
在Struts 1中,使用redirect="true"
定义转发,如果您向前转发,Struts将发送重定向:
<forward name="success" path="/index.do" redirect="true"/>
答案 1 :(得分:0)
在你的指令标签后面的View(Jsp页面).Top页面上设置这些行。
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Cache-Control", "no-store");
response.setDateHeader("Expires", 0);
response.setHeader("Pragma", "no-cache");
在struts中使用redirect="true"
。