JSP刷新页面表单重复提交问题解决办法分享_JSP教程-查字典教程网
JSP刷新页面表单重复提交问题解决办法分享
JSP刷新页面表单重复提交问题解决办法分享
发布时间:2016-12-29 来源:查字典编辑
摘要:使用sessionID和时间戳作为标识,关键代码如下:复制代码代码如下:publicclassSswpdjActionextendsBase...

使用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("<script>alert('刷新提交表单!');</script>");

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页面设置标识隐藏域:

复制代码 代码如下:

<form>

<input type="hidden" name="token" value="${SessionToken}" />

</form>

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新JSP教程学习
    热门JSP教程学习
    编程开发子分类