我想从浏览器历史记录中排除第1页,因此当我离开它时(让我们说第2页)然后按后退按钮,它将不会显示第1页。
否则,如果从1开始 - > 2禁用2上的后退按钮。
有什么办法可以实现吗? (不使用javascript)
我在第1页上有一个表格,成功提交后会显示第2页 但是,当我点击第2页的后退按钮时,我不希望显示第1页。 要么应该禁用它,要么应该恢复表单提交(删除所有会话变量),然后显示第1页。
如何做到这一点?
我在项目中使用Spring MVC和JSP视图。
答案 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页。