可以通过什么来判断
是从前面一个画面迁过来的
还是当前自己画面刷新的?比如说有A,B两个画面
A画面可以点击submit按钮到B画面
B画面也可以自己刷新
那么在B画面怎么知道是A迁移过来的,还是自己在刷新呢?

解决方案 »

  1.   

    如果是B页面的话,从B页面传值过来,在A页面接收这个值来判断
    如果是A页面刷新的话这个值就肯定不存在了
      

  2.   

    刷新的话,就是重新把request发一遍,通过request里面的值是判断不出来的吧。
      

  3.   

    不一定呀,你先从A传到B,在刷新B界面,A传过去的参数还是会有的
      

  4.   

    不是吧,又不是存在session中的
      

  5.   

    如果lz的问题是为了防止重复提交的话,可以使用token机制。网上一搜一堆
      

  6.   


    使用token机制来控制刷新还是比较好的。靠在地址后面带参数是没有办法知道是不是刷新的,因为刷新是把上次的request再重新提交一下,所以所有的参数都是一样的。
      

  7.   

    有这么简单吗?7楼说的对,完全一样的request,考变量无法知道的
      

  8.   

    也可以使用COOKIE来解决,第一次提交,COOKIE记录标示,再次提交先检查Cookie,bool是否存在。然后自己做逻辑处理吧
      

  9.   

    在从A跳转到B的时候设一个cookie变量为1,
    每次页面刷新时将变量加1
    通过判断这个值应该可以达到这种效果吧
      

  10.   

    手机里面有cookie吗?不光pc,手机也要对应。
      

  11.   

    想起一个问题。如果使用cookie的话,那当用户再次访问这个页面时也会被当成是刷新了。所以还要考虑如何注销这个cookie的值。如果这个页面只能从某个页面跳转过来的,那可以在上一个页面跳转时将cookie的变量先清空。
    但不排除有用户会直接访问这个页面,那这样就无法清空这个cookie了。
      

  12.   


    传个值 就可以了。----------------------------------
    A画面可以点击submit按钮到B画面:A画面上 <a herf="b.jsp&flag=1">B画面也可以自己刷新:b.jsp 刷新没有带参数 因此 flag==null-----------------------------------request.getParameter("flag")  就知道是
    A画面可以点击submit按钮到B画面
    B画面也可以自己刷新
      

  13.   

    Get提交 可以的! url屁股后面的参数 刷新还存在
      

  14.   

    你可以在方法里面弄一个变量附上值  页面跳转会进入这个方法  因此 这个值就有了 并且在session里  这个变量的值会保存  所以 只要这个变量有值  就不是第一次进来   
      

  15.   

    你最好自己试验一下你的方法。
    因为刷新肯定就是重新提交一下request。
    你说的那个flag还是可以获得的
      

  16.   

    这个问题可以简单化处理嘛.
      你在请求的action里定义2个变量,
    第一个变量 a = 0 用来保存标记位,你第一次请求的时候,他的值就是为0..你在完成跳转之前也就是你return 之前,再给他赋一次值.比如说a = 10;
    第二个变量 boolean isRefresh 也放在同一个action里面,一开始就对a进行判断
    if(a == 10){
     isRefresh = true; //已经不是第一访问了
    }else{
      isRefresh = false;//第一次访问.
    }
    应该就可以了吧.
      

  17.   

    判断referer的值,如果是刷新的应该是null
      

  18.   

    刷新的话referer的值仍然不变的
      

  19.   

    f5和ctrl+r都可以禁用的,但是ie里面的刷新按钮不能禁用