如何从浏览器的历史记录中排除页面?

时间:2013-03-07 07:36:04

标签: spring jsp spring-mvc browser-history

我想从浏览器历史记录中排除第1页,因此当我离开它时(让我们说第2页)然后按后退按钮,它将不会显示第1页。

否则,如果从1开始 - > 2禁用2上的后退按钮。

有什么办法可以实现吗? (不使用javascript)

我在第1页上有一个表格,成功提交后会显示第2页 但是,当我点击第2页的后退按钮时,我不希望显示第1页。 要么应该禁用它,要么应该恢复表单提交(删除所有会话变量),然后显示第1页。

如何做到这一点?

我在项目中使用Spring MVC和JSP视图。

2 个答案:

答案 0 :(得分:0)

您可以在显示页面时编写会话参数,以强制用户在访问page2之前访问page1。

@RequestMapping("/page1.html")
public String page1(HttpSession session){
    session.setAttribute("seen_page_1", "true");
    return "page1";
}

@RequestMapping("/page2.html")
public String page2(HttpSession session){
    if(!"true".equals(session.getAttribute("seen_page_1").toString())){
        return "redirect:/page1.html";
    }
    return "page2";
}

如果要向已访问过page1的用户显示page2(即使他们返回页面),也可以使用cookie值。

答案 1 :(得分:0)

根据您希望此行为持续多长时间,您可以将第1页的表单状态存储在会话var或cookie中。只要用户打开浏览器,会话变量就会持续。您可以将Cookie的到期时间设置为持续几分钟或永不过期。

您可以在第1页和第2页的请求之间设置filter。在过滤器中检查会话var或cookie。如果值是针对提交的表单,则重定向到第2页。如果未设置该值或将其设置为其他值(取决于您的实现),则重定向到第1页。