如何让浏览器后退显示页面已经过期?(publish by sunwei)
2009-12-22 12:11
471 查看
我们以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="确认" onclick="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>
假如有一个注册流程,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="确认" onclick="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>
相关文章推荐
- php怎样让浏览器后退时不显示网页过期,而显示原先的页面
- 对于长时间装载的ASP.NET页面如何在客户端浏览器中显示进度?
- 设置退出系统再点后退就显示页面过期的方法
- 浏览器--如何让登陆页面的表单不默认显示账号和密码
- 对于长时间装载的ASP.NET页面,如何在客户端浏览器中显示进度?
- 2013-01-28 09:46 PHP阻止页面后退如何用PHP实现禁用浏览器的后退,使后退的页面失效或链接到别的地方?使用php禁止浏览器缓存?
- 如何不允许用户使用浏览器的『后退按钮』查看前面缓存下来的页面。
- 【ASP.NET】对于长时间装载的ASP.NET页面如何在客户端浏览器中显示进度?)
- Pega How To系列之一:如何在页面上动态显示/隐藏内容 ----by Cheney Wang
- 如何用extjs显示一个已经存在的页面
- 对于长时间装载的ASP.NET页面如何在客户端浏览器中显示进度?
- 如何不允许用户使用浏览器的『后退按钮』查看前面缓存下来的页面
- F5当刷新页面,出现“要再次显示此页,web该浏览器,你曾经有过发送消息再次提交...点击重试",如何防止此对话框解决方案的出现,
- 如何解决自定义404页面在IE等浏览器中无法显示问题
- 如何不允许用户使用浏览器的『后退按钮』查看前面缓存下来的页面。
- 如何把浏览器上显示的页面数据 转换成 java字符串---java.net.URL
- 对于长时间装载的ASP.NET页面如何在客户端浏览器中显示进度?
- 解决点击浏览器后退按钮页面过期的问题
- 对于长时间装载的ASP.NET页面如何在客户端浏览器中显示进度
- 对于长时间装载的ASP.NET页面如何在客户端浏览器中显示进度?