同步器令牌

同步器令牌的主要思想是:用一个共享令牌来监控请求流程及客户端对特定资源的访问。
我们可以用同步器令牌来控制客户端的请求提交,不允许重复提交同一个请求。在处理一个刚到达的请求之前,需要先对同步器令牌进行比对。在处理请求之后,将响应准备好并发至客户端之前,需要生成并保存一个新的令牌值。

本文采用的例子基于Spring框架:
比如要新增一条工作流程信息,需要经过两个步骤:

1、请求add.do?name=flow,控制器将其转发到新增流程页面。
protected ModelAndView showForm(HttpServletRequest request,
HttpServletResponse response, BindException errors, Map controlModel)
throws Exception
{
//You business code
// 保存令牌值
saveToken(request);
return this.showForm(request,errors,"addFlowView",controlModel);
}

2、填写完工作流程信息后,点击提交执行控制器的onSubmit方法。

protected ModelAndView onSubmit(HttpServletRequest request,
HttpServletResponse response, Object command, BindException errors)
throws Exception
{
if (isTokenValid(request, true)) {
  
   // 有效请求
  //执行保存操作  
   } else {

   //无效提交
   resetToken(request);
   erros.reject("errorPageView");
  }
//转向流程列表页面
return new ModelAndView("listRedirectView","crudMeta",crudMeta);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值