从我的java网络应用程序,我将重定向到paypal支付网关页面进行信用卡支付,并且在成功验证后,如果用户在paypal页面上单击确认按钮两次,则两个请求将返回到我的Struts 1操作并且由于该系统正在为用户抛出应用程序例外,同时从信用卡中扣除付款。我想接受第一个请求并停止第二个请求。如果有人遇到并解决了这个问题,请告诉我。
答案 0 :(得分:1)
您需要使用令牌的概念。请注意,这不是一个完全有效的代码解决方案。
在加载JSP表单的Action类中创建并保存事务标记
saveToken(request)
检查令牌在您处理表单提交的操作中是否有效
if (isTokenValid(request, true)) {
processRequest();
} else {
return mapping.findForward("invalidToken");
}
以下是Struts1中令牌的更多信息: https://svn.apache.org/repos/asf/struts/archive/trunk/struts-doc-1.1/api/org/apache/struts/util/TokenProcessor.html