求助,当页面提交后点返回按钮提示页面过期。

chao881208 2010-11-30 10:00:16
项目中出现这种问题,用户老是抱怨。有没有什么好的方法来解决这种问题?
...全文
312 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
chao881208 2010-12-06
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 wubin_2003 的回复:]

有两个方法:
1.通过清除缓存:
两个页面a.jsp b.jsp ,a页面由用户输入一串字符,提交后,传递到b页面显示,而b页面我添加了清缓存的操作:
response.setHeader( "Cache-Control ", "no-cache ");
response.setDateHeader( "Expires ",0); ……
[/Quote]
这两种方法都没有用到
chao881208 2010-12-06
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 function_chk 的回复:]
我平常是这样处理的,不知道楼主适不适用。
表单提交后,页面是去到一个提示页面,该页面提示“您的数据已提交,现在跳转至相关页面”,把要跳转的页面的URL传递到该页面中,然后用JS去跳转,location.href = ${url};
这样客户后退只会退到这个提示页面,不过要做好防止重复提交。
[/Quote]

这种方法是可行的,征求一下项目经理的意见看。
谢谢了
别人家的老公 2010-12-03
  • 打赏
  • 举报
回复
只能控制重复提交,至于浏览器的后退功能是暂时不能解决的。



话说在哪里都能碰到2楼这个帮顶帝,你的分数都是帮顶来的吧?
function_chk 2010-12-03
  • 打赏
  • 举报
回复
我平常是这样处理的,不知道楼主适不适用。
表单提交后,页面是去到一个提示页面,该页面提示“您的数据已提交,现在跳转至相关页面”,把要跳转的页面的URL传递到该页面中,然后用JS去跳转,location.href = ${url};
这样客户后退只会退到这个提示页面,不过要做好防止重复提交。
wubin_2003 2010-12-03
  • 打赏
  • 举报
回复
你看看你的项目中是不是有我上面的控制,如果有就去掉。
wubin_2003 2010-12-03
  • 打赏
  • 举报
回复
有两个方法:
1.通过清除缓存:
两个页面a.jsp b.jsp ,a页面由用户输入一串字符,提交后,传递到b页面显示,而b页面我添加了清缓存的操作:
response.setHeader( "Cache-Control ", "no-cache ");
response.setDateHeader( "Expires ",0);
response.setHeader( "Pragma ", "no-cache ");
运行a.jsp,提交后,到b页面,b页面点浏览器“后退”键,正常回到a页面,而后点“前进”键,则提示网页已过期。
2.通过js来禁用后退按钮:
<script language= "javascript " for= "document " event= "onkeydown ">
if((event.altKey)&&((event.keyCode==37)||(event.keyCode==39))){
//alert( "不准你使用ALT+方向键前进或后退网页! ");
event.returnValue=false;

if(event.keyCode==8)
//alert( "不准你按ie工具栏前进或后退网页! ");
event.returnValue=false;
</script>

</script>

ps:这个不会与你其他的js函数冲突,若想继续添加新的js函数,在下面直接添加:
<script language= "JavaScript " type= "text/JavaScript ">
<!--
......
-->
</script>

仲兴轩 2010-12-02
  • 打赏
  • 举报
回复
重复提交就不说了,很多方法解决呀,

返回的话,
你定位到修改页面就是呀,

就好比,你提交之后,应该是查看页面吧,
你那也应该有个修改页面呀,
返回时,就跳到修改页面咯
wubin_2003 2010-12-02
  • 打赏
  • 举报
回复
你是点ie浏览器的“后退”,还是自己写个按钮让他 window.history.go(-1)?
chooseforget 2010-12-02
  • 打赏
  • 举报
回复
1、客户需求: 使用后退按钮
2、项目需求: 不能重复提交

是这样的吧。

要是页面中有 返回 按钮的话还可以控制,但是如果用户使用了 浏览器 自带的 [返回] 怎么控制呢?
wuzhixuexi 2010-12-02
  • 打赏
  • 举报
回复
你在画面中用了
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache">
所以会出现后退按钮点下之后的,画面过期。
把这两句话删除掉之后应该就没有问题了
noaso 2010-12-02
  • 打赏
  • 举报
回复
如果后退不需要提交前表单的数据
后退的时候就重定向回去
chao881208 2010-12-02
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ckstory 的回复:]

session存活时间太短了吧?
1.<session-config>
2. <session-timeout>30</session-timeout>
3.</session-config>
4.//30分钟
[/Quote]
这个不是session的问题,session都是设置的30分钟。
chao881208 2010-12-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 liufeng0209 的回复:]

前一个页面不要用post提交,要么使用get,要么使用Ajax隐式提交.
或者返回按钮别用history.back(-1)而用widow.loaction.href="需要返回的页面";
[/Quote]
我页面一大堆的数据,总不可能用get或者Ajax提交吧。
当页面提交后,如果还返回那么会让客户造成可以重复提交的假象。
chao881208 2010-12-02
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 chooseforget 的回复:]

1、客户需求: 使用后退按钮
2、项目需求: 不能重复提交

是这样的吧。

要是页面中有 返回 按钮的话还可以控制,但是如果用户使用了 浏览器 自带的 [返回] 怎么控制呢?
[/Quote]

这个就是我的问题啊。
chao881208 2010-12-02
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 wubin_2003 的回复:]

你是点ie浏览器的“后退”,还是自己写个按钮让他 window.history.go(-1)?
[/Quote]
是IE的后退按钮
安心逍遥 2010-12-01
  • 打赏
  • 举报
回复
帮顶啦,祝你好运。。。。
liufeng0209 2010-12-01
  • 打赏
  • 举报
回复
前一个页面不要用post提交,要么使用get,要么使用Ajax隐式提交.
或者返回按钮别用history.back(-1)而用widow.loaction.href="需要返回的页面";
ckstory 2010-12-01
  • 打赏
  • 举报
回复
session存活时间太短了吧?
1.<session-config>
2. <session-timeout>30</session-timeout>
3.</session-config>
4.//30分钟

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧