是啥导致使用spring,tomcat和hibernate发生重复请求
Posted
技术标签:
【中文标题】是啥导致使用spring,tomcat和hibernate发生重复请求【英文标题】:What causes duplicate requests to occur using spring,tomcat and hibernate是什么导致使用spring,tomcat和hibernate发生重复请求 【发布时间】:2010-09-19 15:26:41 【问题描述】:我正在使用 Spring 框架、hibernate 和 tomcat 开发一个 Java 项目。
背景: 我有一个表单页面,它获取数据、验证、处理数据并最终使用休眠模式保存数据。在处理数据时,我做了一些特殊的命令(模型) 在使用 hibernate 持久化之前进行操作。
问题: 出于某种原因,我的 onSubmit 方法被调用了两次,第一次是通过事情 被妥善处理。但是第二次他们不是;和不正确的 信息正在被持久化。
我还注意到,在其他只是从数据中提取信息的页面上 底座并在屏幕上显示;那里也发生了双重请求。
是否有什么配置错误,我没有正确使用弹簧..对此有任何帮助 棒棒哒!
其他信息:
该应用仍在开发中。在测试应用程序时,我遇到了这个问题。我正在使用该应用程序,因为我希望它会被使用(单击、有效数据等......)
【问题讨论】:
【参考方案1】:可能就像用户单击链接两次、在服务器仍在处理第一个请求时重新提交表单或在 POST 页面上点击刷新一样简单。
您是否在服务器端采取任何措施来解决来自用户的重复请求(例如此类请求)?
【讨论】:
【参考方案2】:如果您在 IE 中进行测试,请注意在某些版本的 IE 中它有时会提交两个请求。您在哪些浏览器中测试应用?
如果单击处理程序与提交按钮相关联并调用 submit() 并且不返回 false 以取消事件气泡,则会出现 javascript 问题。
【讨论】:
【参考方案3】:这是刚起步的人面临的一个非常普遍的问题。并且对应用生态系统不太确定。 为了部署一个 spring 应用程序,我们构建了 war 文件。 然后我们把它放在tomcat的'webapps'文件夹中。 然后我们使用终端运行tomcat实例(我假设是linux系统)。 现在,我们在那个终端中设置了 env。
当我们为 spring 应用程序设置环境时,问题就出现了,其中可以部署多个 war 文件。 然后我们必须迎合 env 必须是特定 war 文件独有的事实。
为了实现这一点,我们可以做的是为每场战争创建专属的 env 文件。 (例如war_1.sh、war_2.sh、.....、war_n.sh)等等。
现在我们可以获取我们必须为其部署相应战争的特定 env 文件。这样我们就可以隔离多个战争(应用程序)及其环境。
【讨论】:
以上是关于是啥导致使用spring,tomcat和hibernate发生重复请求的主要内容,如果未能解决你的问题,请参考以下文章
Spring Boot:是啥导致了这个 TransientDataAccessResourceException?
Spring MVC - 对Tomcat中应用程序的所有请求在war打包后导致错误404
在 Spring+Tomcat 上使用 JSF 2.2.9 会导致 java.lang.NoClassDefFoundError: javax/enterprise/context/spi/Conte