一个ssh的项目,表单内容通过JavaScript认证后提交给action,可是在action处理的时候发生了问题,在js认证的时候我让它弹出了一个对话框,证明这段代码只运行了一次,也就是只提交了一次。可是在action中却收到了两次的请求。单步调试的时候发现,在action刚开始处理请求的时候就又来了另一个请求,然后两个请求被同时处理,最后导致数据库中出现了冗余记录。怎么回事呢?
日志如下
FYproject] DEBUG [http-8080-1] BarServerDAO.findAll(169) | finding all BarServer instances
opt is ------------add2test//action中的请求处理开始[FYproject] DEBUG [http-8080-1] VersionDAO.findByVersionname(280) | find Version
opt is ------------add2test//action中的请求处理开始[FYproject] DEBUG [http-8080-1] VersionDAO.findByVersionname(294) | find Version successful
version:t-1.10
[FYproject] DEBUG [http-8080-1] BarServerDAO.findByProperty(120) | finding BarServer instance with property: cupId, value: 3972383Nvidia42302e3120070516000000000000000SystemSerialNumberPhoenixAwardBIOSv600PGPhoenixTechnologiesLTD
[FYproject] DEBUG [http-8080-2] VersionDAO.findByVersionname(280) | find Version
[FYproject] DEBUG [http-8080-2] VersionDAO.findByVersionname(294) | find Version successful
山东
version:t-1.10
bar中有数据1个//调用了一个保存数组数据到数据库的方法
循环开始i的值为0
[FYproject] DEBUG [http-8080-2] BarServerDAO.findByProperty(120) | finding BarServer instance with property: cupId, value: 3972383Nvidia42302e3120070516000000000000000SystemSerialNumberPhoenixAwardBIOSv600PGPhoenixTechnologiesLTD
[FYproject] DEBUG [http-8080-1] BarServerDAO.findBarByid(218) | findBarByid
[FYproject] DEBUG [http-8080-1] BarServerDAO.findBarByid(227) | findBarByid successful
山东
bar中有数据1个
循环开始i的值为0
[FYproject] DEBUG [http-8080-2] BarServerDAO.findBarByid(218) | findBarByid
[FYproject] DEBUG [http-8080-1] TVersionBarDAO.isTestBarExist(207) | getting TVersionBar with id:
[FYproject] DEBUG [http-8080-2] BarServerDAO.findBarByid(227) | findBarByid successful
[FYproject] DEBUG [http-8080-1] BarServerDAO.findBarByid(218) | findBarByid
[FYproject] DEBUG [http-8080-2] TVersionBarDAO.isTestBarExist(207) | getting TVersionBar with id:
[FYproject] DEBUG [http-8080-1] BarServerDAO.findBarByid(227) | findBarByid successful
[FYproject] DEBUG [http-8080-1] TVersionBarDAO.save(38) | saving TVersionBar instance
[FYproject] DEBUG [http-8080-1] TVersionBarDAO.save(42) | save successful
[FYproject] DEBUG [http-8080-2] BarServerDAO.findBarByid(218) | findBarByid
[FYproject] DEBUG [http-8080-2] BarServerDAO.findBarByid(227) | findBarByid successful
[FYproject] DEBUG [http-8080-2] TVersionBarDAO.save(38) | saving TVersionBar instance
[FYproject] DEBUG [http-8080-2] TVersionBarDAO.save(42) | save successful
保存到数据库成功0//方法中的提示
添加测试网吧成功//action中的提示
保存到数据库成功0
添加测试网吧成功
日志如下
FYproject] DEBUG [http-8080-1] BarServerDAO.findAll(169) | finding all BarServer instances
opt is ------------add2test//action中的请求处理开始[FYproject] DEBUG [http-8080-1] VersionDAO.findByVersionname(280) | find Version
opt is ------------add2test//action中的请求处理开始[FYproject] DEBUG [http-8080-1] VersionDAO.findByVersionname(294) | find Version successful
version:t-1.10
[FYproject] DEBUG [http-8080-1] BarServerDAO.findByProperty(120) | finding BarServer instance with property: cupId, value: 3972383Nvidia42302e3120070516000000000000000SystemSerialNumberPhoenixAwardBIOSv600PGPhoenixTechnologiesLTD
[FYproject] DEBUG [http-8080-2] VersionDAO.findByVersionname(280) | find Version
[FYproject] DEBUG [http-8080-2] VersionDAO.findByVersionname(294) | find Version successful
山东
version:t-1.10
bar中有数据1个//调用了一个保存数组数据到数据库的方法
循环开始i的值为0
[FYproject] DEBUG [http-8080-2] BarServerDAO.findByProperty(120) | finding BarServer instance with property: cupId, value: 3972383Nvidia42302e3120070516000000000000000SystemSerialNumberPhoenixAwardBIOSv600PGPhoenixTechnologiesLTD
[FYproject] DEBUG [http-8080-1] BarServerDAO.findBarByid(218) | findBarByid
[FYproject] DEBUG [http-8080-1] BarServerDAO.findBarByid(227) | findBarByid successful
山东
bar中有数据1个
循环开始i的值为0
[FYproject] DEBUG [http-8080-2] BarServerDAO.findBarByid(218) | findBarByid
[FYproject] DEBUG [http-8080-1] TVersionBarDAO.isTestBarExist(207) | getting TVersionBar with id:
[FYproject] DEBUG [http-8080-2] BarServerDAO.findBarByid(227) | findBarByid successful
[FYproject] DEBUG [http-8080-1] BarServerDAO.findBarByid(218) | findBarByid
[FYproject] DEBUG [http-8080-2] TVersionBarDAO.isTestBarExist(207) | getting TVersionBar with id:
[FYproject] DEBUG [http-8080-1] BarServerDAO.findBarByid(227) | findBarByid successful
[FYproject] DEBUG [http-8080-1] TVersionBarDAO.save(38) | saving TVersionBar instance
[FYproject] DEBUG [http-8080-1] TVersionBarDAO.save(42) | save successful
[FYproject] DEBUG [http-8080-2] BarServerDAO.findBarByid(218) | findBarByid
[FYproject] DEBUG [http-8080-2] BarServerDAO.findBarByid(227) | findBarByid successful
[FYproject] DEBUG [http-8080-2] TVersionBarDAO.save(38) | saving TVersionBar instance
[FYproject] DEBUG [http-8080-2] TVersionBarDAO.save(42) | save successful
保存到数据库成功0//方法中的提示
添加测试网吧成功//action中的提示
保存到数据库成功0
添加测试网吧成功
解决方案 »
- hibernate复杂查询
- 求助!SSH2项目中,hibernate关联映射中怎么样增删改查?
- The server encountered an unexpected condition which prevented it from fulfilling the request
- 关于用Ajax更新session的问题
- 请问jbuilder2005中如何配置hibernate
- .net的DATATABLE好象挺好的,JAVA中有吗?既然 他可以做那么多事情,为什么他不是持久层和hibernate差别在哪里?
- 菜鸟请教!!
- 想来日本工作的话,请联系
- 要做一个基本的语法解释器,能给我点思路吗?
- struts的配置问题
- SSH整合 User Libraries 不起作用!!(速度帮忙!)
- 新年快乐,struts下调用问题
表单验证的函数放在form的onsubmit函数中,验证表单后返回true or false就行了,验证函数中不要再form.submit()了
---
楼主仔细说明原因!
把你的页面form的那一段贴出来看看
那你绝对在js认证里有from.submit()的代码。而在<from>标签里又有一个action="",当然会提交两次哦。
要这样,
例:
把表单a提交到action:user,提交前通过js中check()方法认证。
<script>
function check()
{
if()//满足条件
{
return true;
}
else//不满足条件
{
return false;
}
}
</script>
<form id="form1" action="user.do" onsubmit="return check()">
</form>