表单在Struts 2中提交两次,Hibernate应用程序在网络代理上进行异常处理

时间:2011-05-31 05:30:33

标签: struts2 duplicate-data

我有一个struts2,Hibernate和Spring应用程序。它在我们的本地端正常工作。当我们在开发服务器上部署应用程序时,有时会在表单提交时提交两次表单。这导致在数据库中输入重复数据。

这只发生在服务器上。这在Firefox上很少发生,但在IE中很常见。而且这只发生在某些形式而不是其他形式。但是,没有什么可以区分这些形式。

我们有时会使用struts 2提交按钮来提交表单,有时会使用带有简单按钮的java脚本来提交表单。

作为最后一种方式,我们可以使用拦截器来防止双重表单提交(我们将不得不对很多表单进行更改)但重点是它根本不会发生在本地端。为什么它只在服务器上发生,在某些形式上发生,有时只发生。

编辑:

我注意到的另一件事是,当我不使用网络代理时,即使在服务器表单上也没有提交两次,但是当使用网络代理时,表单会被提交两次。该应用程序正常工作没有任何代理。完全没有重复。

代理人与它有什么关系?有没有人遇到网络代理和双表格提交的任何问题?

EDIT2:

刚才我发现在使用代理时,有时会拒绝访问,在这种情况下,浏览器会发送两次请求,导致双重表单提交。

如果我看到http标头,我可以看到两个帖子请求,其中一个在标题中有以下内容

需要HTTP / 1.1 407代理身份验证(ISA Server需要授权才能完成请求。拒绝访问Web代理服务。)

有关于此的任何想法? 请帮忙。

1 个答案:

答案 0 :(得分:0)

如果您使用jsp并使用

<html:submit .... onClick="some javascript code">

您可以尝试使用

<html:button .... onClick=:some javascript code" >

发生在我身上的情况是

  1. 我在jsp页面中使用“form”标签
  2. 我在表单标记中使用了其他按钮,该按钮使用提交表单
  3. 的javascript

    希望它会有所帮助。