当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
计算机二级辅导:如何让浏览器后退显示页面已经过期
发布时间:2010/4/5 17:40:13 来源:城市学习网 编辑:admin
  假如有一个注册流程,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
  :
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved