【发布时间】:2011-08-16 19:55:29
【问题描述】:
我使用 JSP 开发了一个简单的 Web 应用程序。它有一个登录页面,其中包含用户名、密码字段和 sumbit 按钮。它有一个注销页面,其中包含指向登录页面的链接。还有一些页面,比如page1、page2、page3、page4等。
正常的工作流程如下:
- 登录后进入page1。
- 然后点击一些动作,它会转到第2页。
- 然后点击一些动作,它会转到第3页。
- 然后单击一些操作,它将转到第 4 页。所以现在我在第 4 页。
- 现在点击浏览器导航工具栏中的后退按钮,一般会转到上一页(page3)。
但我的要求是,如果您从应用程序的任何页面单击导航工具栏中的返回按钮,那么您应该转到注销页面。例如:如果您在第4页并按下返回按钮,那么您应该转到注销页面而不是第3页。
如何做到这一点?反正有可能吗?也许使用 Javascript?
如何跟踪和控制导航工具栏中的浏览器后退按钮功能?
但我原来的要求:
我已经使用 JSF 框架开发了安全应用程序。
而且我也使用范围(会话范围)
在我的应用程序中,我使用以下代码...但无法正常工作...
public class **LogoutPhaseListener** implements **PhaseListener**
{
public void **afterPhase**(PhaseEvent event)
{
}
public void **beforePhase**(PhaseEvent event)
{
FacesContext facesContext = event.getFacesContext();
HttpServletResponse httpServletResponse = (HttpServletResponse) facesContext.getExternalContext().getResponse();
httpServletResponse.addHeader("Pragma", "no-cache");
httpServletResponse.addHeader("Cache-Control", "no-cache");
httpServletResponse.addHeader("Cache-Control", "must-revalidate");
httpServletResponse.addHeader("Expires", "Mon, 8 Aug 2006 10:00:00 GMT");
httpServletResponse.addHeader("Cache-Control", "no-store");
}
public PhaseId **getPhaseId**()
{
return PhaseId.RENDER_RESPONSE;
}
}
如果我点击浏览器中的返回按钮,那么它会转到上一页...
但我想退出页面..当我点击浏览器中的后退按钮...上面的代码不完美地工作..
【问题讨论】:
标签: javascript jsp