问题描述
同样的程序:@RequestMapping("/changeStatus/{id}")@AuthMethod(role="ROLE_AUDIT")publicStringchangeStatus(@PathVariableintid,Integerstatus){System.out.println("------------------------1----------------------->"+id+"--->"+status);topicService.updateStatus(id);System.out.println("------------------------2----------------------->"+id+"--->"+status);Topict=topicService.load(id);if(topicService.isUpdateIndex(t.getChannel().getId())){indexService.generateBody();}if(status==0){return"redirect:/admin/topic/unaudits";}else{return"redirect:/admin/topic/audits";}}
火狐执行时候莫名其妙的重复执行:------------------------1----------------------->3--->1Hibernate:selecttopic0_.idasid1_8_3_,topic0_.authorasauthor2_8_3_,topic0_.cidascid1....------------------------1----------------------->3--->1Hibernate:selecttopic0_.idasid1_8_3_,topic0_.authorasauthor2_8_3_,topic0_.cidascid15_8.....Hibernate:updatet_topicsetauthor=?,cid=?,channel_pic_id=?,cname=?,content=?,create_date=?...------------------------2----------------------->3--->1Hibernate:selectcount(*)ascol_0_0_fromt_channelchannel0_wherechannel0_.is_index=...Hibernate:selectchannel0_.idascol_0_0_,channel0_.nameascol_1_0_fromt_channelchannel0_wh....Hibernate:updatet_topicsetauthor=?,cid=?,channel_pic_id=?,cname=?,content=?,create_date...------------------------2----------------------->3--->1Hibernate:selectcount(*)ascol_0_0_fromt_channelchannel0_wherechannel0_.is_index=...Hibernate:selectchannel0_.idascol_0_0_,channel0_.nameascol_1_0_fromt_channelchannel0_wh....Hibernate:updatet_topicsetauthor=?,cid=?,channel_pic_id=?,cname=?,content=?,create_date........除火狐以外的浏览器都是只执行一次:------------------------1----------------------->3--->1Hibernate:selecttopic0_.idasid1_8_3_,topic0_.authorasauthor2_8_3_,topic0_.cidascid15_8_3_,topic..Hibernate:updatet_topicsetauthor=?,cid=?,channel_pic_id=?,cname=?,content=?,create_date=?,is_...------------------------2----------------------->3--->1Hibernate:selectcount(*)ascol_0_0_fromt_channelchannel0_wherechannel0_.is_index=1andchannel0_....Hibernate:selectchannel0_.idascol_0_0_,channel0_.nameascol_1_0_fromt_channelchannel0_wherec........为什么会这样,太奇怪了!有那个高手能帮我解决这个现象!?
解决方案
解决方案二:
[code=java]2014-12-0422:56:14.275:WARN:oejs.ServletHandler:org.springframework.web.util.NestedServletException:Requestprocessingfailed;nestedexceptionisjava.lang.IllegalStateException:Committedatorg.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:948)atorg.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:827)atjavax.servlet.http.HttpServlet.service(HttpServlet.java:735)atorg.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)atjavax.servlet.http.HttpServlet.service(HttpServlet.java:848)atorg.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:686)atorg.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1494)atorg.konghao.cms.web.SystemContextFilter.doFilter(SystemContextFilter.java:37)atorg.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)atorg.springframework.orm.hibernate4.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:152)atorg.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)atorg.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)atorg.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)atorg.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)atorg.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1474)atorg.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:499)atorg.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)atorg.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557)atorg.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)atorg.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)atorg.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)atorg.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)atorg.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)atorg.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)atorg.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)atorg.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)atorg.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)atorg.eclipse.jetty.server.Server.handle(Server.java:370)atorg.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)atorg.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:949)atorg.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1011)atorg.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644)atorg.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)atorg.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)atorg.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668)atorg.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)atorg.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)atorg.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)atjava.lang.Thread.run(Thread.java:662)Causedby:java.lang.IllegalStateException:Committedatorg.eclipse.jetty.server.Response.resetBuffer(Response.java:1152)atorg.eclipse.jetty.server.Response.sendRedirect(Response.java:495)atorg.springframework.web.servlet.view.RedirectView.sendRedirect(RedirectView.java:551)atorg.springframework.web.servlet.view.RedirectView.renderMergedOutputModel(RedirectView.java:276)atorg.springframework.web.servlet.view.AbstractView.render(AbstractView.java:264)atorg.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1208)atorg.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:992)at....code]所有浏览器都很正常,唯独火狐浏览器运行的时候报这个错误,请高手帮帮小弟分析一下报错原因!?
解决方案三:
你应该发出前台提交请求的代码。前台存在一种可能,button调用某种方法进行提交后,form表单自身也会提交,因此出现2次提交的情况,但是没你前端的代码,不敢轻易诊断啊
解决方案四:
应该检查下前台请求的代码
解决方案五:
开控制台看看发了几次网络请求呗
解决方案六:
你F12看看浏览器调试下,是否触发2次url请求。
解决方案七:
你把请求的url拿下来自己放到浏览器的地址栏里试试,不要经过前端的js调用