繁体   English   中英

Java EE会话/对话/视图超时重定向

[英]Java ee session/conversation/view timeout redirection

我的环境是:NetBeans7.2.1,GlassFish3.1,JSF2和Weld 1.1.0。

在以下情况之一(会话/会话/视图超时)中,我试图重定向到错误页面。

根据我的阅读,有很多选择:

  1. 使用<error-page>里面web.xml (但是当我使用某种原因locationerror.xhtml它不工作,只用一个servlet页面-问这个关于这个问题的问题)。

  2. faces-config.xml使用<exception-handler-factory> ,它将像示例一样使用CustomExceptionHandler

  3. 示例中使用@WebFilter

我的主要问题是,在我重定向到error.xhtml页面后,我想禁止返回上一页。 因此,即使用户单击“后退”按钮,他仍将被重定向到错误页面。

当发生异常时,我能够重定向到错误页面,但是无法清除缓存,因此当用户返回时,他仍然可以看到上一页的内容。

我不完全了解上述三个选项之间的区别,以及每个选项的作用到底是什么。

有人可以解释一下吗?

之间的区别是什么

NavigationHandler nav = fc.getApplication().getNavigationHandler(); nav.handleNavigation(fc, null, "/error"); facesContext.renderResponse();

((HttpServletResponse)response).sendRedirect("yourCustomJSF.jsf");

如何通过重定向和清除缓存来处理这些异常,以使用户无法看到上一页?

提前致谢。

您可以将其用于处理过期的会话/视图:

<error-page>
    <exception-type>javax.faces.application.ViewExpiredException</exception-type>
    <location>/index.jsf</location>
</error-page>

我的主要问题是,在我重定向到error.xhtml页面后,我想禁止返回上一页。 因此,即使用户单击“后退”按钮,他仍将被重定向到错误页面

为此,请使用过滤器不缓存页面并将请求发送到服务器,而不是查看此内容以获取过滤器代码

https://stackoverflow.com/a/19034603/2422368

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM