3

我有一个 Struts 1 Web 应用程序,我想实现 post/redirect/get 以便在用户按下浏览器上的后退/前进按钮时强制重定向。主要问题是我们要实现会话超时。当会话过期时,我们将重定向到“sessionExpired”页面,但如果用户点击浏览器,我们希望隐藏前一页的信息。我已经添加了删除操作缓存的代码:

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

但这会在浏览器的缓存中抛出“未找到页面”,我们希望运行重定向到页面而不是“无缓存”页面的内容。这就是我尝试实施 PRG 的原因。

4

2 回答 2

2

Post/Redirect/Get 模式不包括在用户按下返回按钮时强制重定向。它包括在成功的 POST 请求后发送重定向。

在 Struts 1 中,用 定义转发redirect="true",如果您返回这个转发,Struts 将发送重定向:

<forward name="success" path="/index.do" redirect="true"/>
于 2012-08-01T09:06:52.963 回答
0

在您的视图(Jsp 页面)上设置这些行。指令标记之后的页面顶部。

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

redirect="true"在struts中使用。

于 2012-08-01T09:52:41.003 回答