SpringMVC,多次点一个请求链接时报java.lang.StackOverflowError 5C

求问:一个SpringMVC项目,在连续多次点击同一个链接之后会导致java.lang.StackOverflowError栈溢出,报错信息如下:
java.lang.StackOverflowError:
at org.eclipse.jetty.server.Dispatcher$IncludeAttributes.getAttributeNames(Dispatcher.java:479)
at org.eclipse.jetty.server.Dispatcher$IncludeAttributes.getAttributeNames(Dispatcher.java:479)
at org.eclipse.jetty.server.Dispatcher$IncludeAttributes.getAttributeNames(Dispatcher.java:479)
at org.eclipse.jetty.server.Dispatcher$IncludeAttributes.getAttributeNames(Dispatcher.java:479)
at org.eclipse.jetty.server.Dispatcher$IncludeAttributes.getAttributeNames(Dispatcher.java:479)
at org.eclipse.jetty.server.Dispatcher$IncludeAttributes.getAttributeNames(Dispatcher.java:479)
at org.eclipse.jetty.server.Dispatcher$IncludeAttributes.getAttributeNames(Dispatcher.java:479)
at org.eclipse.jetty.server.Dispatcher$IncludeAttributes.getAttributeNames(Dispatcher.java:479)
at org.eclipse.jetty.server.Dispatcher$IncludeAttributes.getAttributeNames(Dispatcher.java:479)

7个回答

配置token拦截器,防止重复提交数据就可以了

OuGooQueen
OuGooQueen 这个链接只是相当于一个跳转,等于是多次请求一个控制器里面的同一个方法。
大约 2 年之前 回复

检查是否有死循环、递归等程序,如果有,修正、优化相关代码。

检查是否有死循环、递归等程序,如果有,修正、优化相关代码。

栈内存溢出大多数都是递归无出口造成的。

看报错基本就是死循环了 或者递归 你应该是获取地区名 这种情况用的一般是递归吧

建议判断是否点击过,只要点击过,就不在响应方法,可以在前台加上一个时间间隔,让其短时间内不能多次点击,还有就是楼上几位说的,找报错位置,改正,建议先改正优先,毕竟是程序错了。

OuGooQueen
OuGooQueen 就是一个很普通的通过controller方法跳转的链接,没有加任何逻辑。
大约 2 年之前 回复

如果你是ajax提交的话,要区分同步异步,也就是async:false或者true!如果你是其他方式提交的话可以使用拦截器来解决

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问