永发信息网

jsp页面怎么防止刷新页面又提交表单

答案:3  悬赏:80  手机版
解决时间 2021-12-02 04:56
jsp页面怎么防止刷新页面又提交表单
最佳答案
JSP刷新页面表单重复提交问题解决办法,使用sessionID和时间戳作为标识,关键代码如下:

public class SswpdjAction extends BaseAction{  
       public String execute(){
        
        ................
        //设置标识
        this.setSessionToken();
        //转到添加页面
        return "toAdd";
      }
  
      public String reSave(){
        if(this.token != null && this.token.equals(this.getSessionToken())){
          
          this.setSessionToken();
      
          
          ..............
          return "toAdd";
        }else{
          printWriter out = null;
          try{
            httpServletResponse.setContentType("text/html;charset=UTF-8");
            out = httpServletResponse.getWriter();
            out.println("");
            out.flush();
        
            }catch(IOException e){
                e.printStackTrace();
            }finally{
                if(out != null){
                    out.close();
                }
            }
        }
        return null;
  }

 public class BaseAction extends ActionSupport{

    
    protected String token;

    public String getToken(){
        return token;
    }

    public void setToken(String token){
        this.token = token;
    }

    public String getSessionToken(){
        if(null != httpSession.getAttribute("Token")){
            return httpSession.getAttribute("Token");
        }else{
            return null;
        }
    }

    
    public void setSessionToken(){
        String flag = useMd5(httpSession.getId() + System.currentTimeMillis());
        httpSession.setAttribute("Token", flag);
        httpServletRequest.setAttribute("SessionToken", flag);
    }

    
    private String useMd5(String str){
        byte[] bs = str.getBytes();
        String result = null;
        try{
            MessageDigest md5 = MessageDigest.getInstance("MD5");
            md5.update(bs);
            result = md5.digest().toString();
        }catch(NoSuchAlgorithmException e){
            e.printStackTrace();
        }finally{

        }
        return result;
    }
}JSP页面设置标识隐藏域:
全部回答
添加验证码,
很久以前在网上找的,你试试吧
用JavaScript解决
在表单中写一个隐藏域
如果第一次提交,就改变 value="true" ;
再次提交时候,可以用JS 在客户端判断hidde值

var resubmit = false;
function checkCFSubmit()
{
if (resubmit )
{
return false;
}
else
{
resubmit = true;
return true;
}

然后在
中添加onsubmit="javascript:return checkCFSubmit();"
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
mantis系统里面的标签有什么用啊????
在家里乌木应该安放什么位置?
赛扬G4900T性能怎么样
油炸街有没有农行
嗅觉用敏捷还是灵敏
啤酒冰糖水灭蚊子吗
北京地铁10号线在知春路换乘13号线会麻烦吗,
形容思虑很多,思想复杂是什么诚语
林冲有哪些经典情节?
北京消协有什么回馈计划?
魔兽世界LR等级高,BB等级低怎么办
遇龙河的地理环境
途讯话筒k058和k098那个好?
老年人学萨克斯好不好
名字里有昊字是不是不好啊,影响孩子吗
推荐资讯
我和朋友合伙,我投五万,他投十五万,我们要
上周体验今天拿到报告,上面显示我双侧颌下淋
东莞寮步到深圳龙华坐车要多久,怎么坐车?
梦幻西游手游梦幻迷城活动怎么预约
水仙 台式转页扇 NEA-KYT-25A2怎么样
我在连接数据库的时候出现这情况该怎么解决?
硬气功的练习方法。
形容质量好的成语有哪些?
这样配招的影伊布,大家给点意见
配匙店(录塘龙丁村西路13号宜好超市对面)地址
大众朗行1.4t自动挡的暖风怎样打开
阅读下面的内容,完成下面4题陈奉,御马监奉
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?