如何让浏览器后退显示页面已经过期?(publish by sunwei)

我们以JSP为例:

假如有一个注册流程,a.jsp:负责输入信息、b.jsp:负责处理信息、c.jsp:处理完信息后的用户跳转的另外一个页面。

显然用户轨迹为:a.jsp->b.jsp->c.jsp

我们的目标是:假设现在用户已经在c.jsp,用户通过点击浏览器后退按钮,那么浏览器将显示“页面已经过期”。

下面是三个页面的源码,具体每个页面为什么那么设置,什么都有说明,如果还不明白为什么,那么请自己调试一下就知道了。

 

a.jsp:

 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
//如果设置过期,他的下一个页面后退的时候,就会重新请求服务器,状态码200,提交方式:get
//如果没有设置过期,他的下一个页面后退的时候,读取缓存页面和数据,状态码cache,提交方式:get
response.addHeader("Pragma", "No-cache");
response.addHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires",-10);
%>
<hi>注册过期流程测试-步骤1</hi>
<form action="/a.jsp" method="post">
 <input type="text" name="name"/>
 <input type="submit" value="注册"/>
</form>

b.jsp:

 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
//这个是被post的页面,这个页面由前一个页面来决定怎么显示,
//如果设置过期,他的下一个页面后退将找不到页面(因为不知道是什么样的数据来post给他),页面会显示已过期,状态:ERROR_FILE_NOT_FOUND,提交方式:post
//如果没有设置过期,他的下一个页面后退将找到老的页面和老的数据,状态:history cache,提交方式:post
response.addHeader("Pragma", "No-cache");
response.addHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires",-10);
%>
<%
String name = request.getParameter("name");
%>
<hi>注册过期流程测试-步骤2</hi>
<input type="button" value="确认" οnclick="window.location.href='/c.jsp'"/>


 

c.jsp:

 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<hi>注册过期流程测试-步骤2</hi>
<a href='b.jsp'>返回</a> <br>

 

转载于:https://www.cnblogs.com/sunwei2012/archive/2009/12/22/1629670.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值