使用spring,tomcat和hibernate导致重复请求的原因

时间:2008-10-28 18:05:54

标签: java hibernate spring jsp tomcat

我正在使用spring框架,hibernate和tomcat开发Java项目。

背景: 我有一个表单页面,它接收数据,验证,处理它,并最终使用hibernate持久保存数据。在处理数据时我做了一些特殊的命令(模型) 在持续使用hibernate之前进行操作。

问题: 出于某种原因,我的onSubmit方法被调用了两次,这是第一次通过事情  处理得当。然而第二次通过他们不是;而且不正确  信息正在持续存在。

我也注意到其他页面只是从数据中提取信息  基地并在屏幕上显示;双重要求也在那里发生。

是否有错误配置的东西,我没有正确使用弹簧。对此有任何帮助 太棒了!

其他信息:

该应用仍在开发中。在测试应用程序时,我遇到了这个问题。我正在使用该应用程序,因为我希望它可以使用(单击,有效数据等...)

3 个答案:

答案 0 :(得分:1)

如果您在IE中进行测试,请注意在某些版本的IE中,它有时会提交两个请求。你在哪些浏览器中测试应用程序?

如果点击处理程序与提交按钮相关联并调用submit()并且不返回false以取消事件气泡,则存在javascript问题。

答案 1 :(得分:0)

可以像用户点击链接两次一样简单,在服务器仍处理第一个请求时重新提交表单,或者在POST页面上点击刷新。

您是否在服务器端执行任何操作以解决来自用户的重复请求?

答案 2 :(得分:0)

这是刚开始的人面临的一个非常普遍的问题。而且对应用程序生态系统不是很确定。 要部署spring应用,我们构建war文件。 然后,将其放入tomcat的“ webapps”文件夹中。 然后我们使用终端运行tomcat实例(我假设是linux系统)。 现在,我们在该终端中设置env。

当我们为spring应用程序设置环境时会出现问题,在该环境中可以部署多个war文件。 然后,我们必须迎合这个事实,即环境必须是特定战争文件所独有的。

要实现这一目标,我们所能做的就是为每次战争创建专属的环境文件。 (例如war_1.sh,war_2.sh,.....,war_n.sh)等等。

现在,我们可以为那个特定的env文件提供源,我们必须为其部署相应的war。这样,我们可以将多个战争(应用程序)及其环境隔离开来。