Python语言技术文档

微信小程序技术文档

php语言技术文档

jsp语言技术文档

asp语言技术文档

C#/.NET语言技术文档

html5/css技术文档

javascript

点击排行

您现在的位置:首页 > 技术文档 > jsp入门教程

JSP刷新页面表单重复提交问题解决办法分享

来源:中文源码网    浏览:299 次    日期:2024-04-27 09:46:58
【下载文档:  JSP刷新页面表单重复提交问题解决办法分享.txt 】


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{ /**jsp页面标识**/ 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); } /**MD5加密**/ 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页面设置标识隐藏域:
复制代码 代码如下:
  

相关内容