【Java服务端开发 三】防止表单重复提交token机制

防止用户注册信息或者订单信息重复提交写入数据库,使用session的token令牌机制
也叫做令牌机制,除了重定向以外的另一种处理表单重复提交的方法

login.jsp================================================


令牌机制

//该表单界面一定要用标签写,只有标签才有效,而且一定要在form里放上token标签

tokenAction=============================================

public class TokenAction extends ActionSupport {
	private String username;
	private String password;

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	@Override
	public String execute() throws Exception {
		return SUCCESS;
	}
}

Struts.xml===============================================


		   /token/success.jsp
		   /token/field.jsp     //重复提交时转向的页面,名字是固定的
		   
		         //这两个拦截器标签一定要写

Success.jsp==============================================


      

Filed.jsp================================================

 
     不能重复提交表单
  

【Java服务端开发 三】防止表单重复提交token机制_第1张图片

【Java服务端开发 三】防止表单重复提交token机制_第2张图片

在请求login.jsp页面的时候就会在客户端和服务器端各有一个随机数,并且相同,然后提交表单的时候进行比对,如果相同则认为是第一次提交,比对之后服务器端生成一个新的随机数,重复提交表单的时候客户端还是原来的随机数,而服务器端已经是新的了,所以转向失败页面。提交成功后刷新页面和回退回去不刷新再次提交都会比对不成功,而回退回去刷新又相当于重新请求login.jsp,又重新开始了,所以可以提交成功

你可能感兴趣的:(【Java技术相关合集】)