【发布时间】:2014-10-12 04:51:30
【问题描述】:
有没有办法查明http请求是否来自过期的网页(IE页面表示网页已过期)。单击后退按钮,我将过期网页。 现在在过期页面上,我执行刷新/或 F5,我想将用户带到带有错误消息的特定页面上。这个特定页面是我的主页,请求映射是 /homecontroller。 我正在尝试使用过滤器来实现这一点,但我无法知道请求是来自过期页面还是登录页面。有人可以帮忙吗。
示例 - 假设有 3 个页面 A(/controllerA) -> B(/controllerB) -> C(/controllerC)。
- 现在当我从页面 A 转到页面 B 时,我通过设置 setCacheSeconds(0)、setUseExpiresHeader(true)、setUseCacheControlHeader(true)、setUseCacheControlNoStore(true) 清除了缓存。
- 现在我要从 B 页转到 C 页。
- 现在我在页面 C 时单击浏览器后退按钮,以便返回页面 B
- 现在我得到的不是页面 B,而是 IE 的“网页已过期”消息页面
- 在上述过期页面上,我刷新或 F5。调用转到 url (/controllerB)
- 现在在 (/controllerB) 的控制器中,我想检查此调用是否来自过期页面,然后将此调用转发到 /controllerA,以便可以显示主页 A。如果此调用不是来自过期页面,我想从 /ControllerB 显示页面 B
【问题讨论】:
-
过期页面是什么意思?
-
您是否使用 cookie 来跟踪到期时间?
-
尝试在会话中使用属性。
-
过期页面是指带有“网页已过期”消息的页面。当您在加载页面时清除缓存时会出现。
标签: java servlets request servlet-filters servlet-listeners