关于Java接收返回值的问题

背景:一个ssm项目。
问题描述:
前台页面对一个@RequestMapping方法发出了请求,当该方法接收到请求时需要马上返回一个数据(任意),前台接收了返回数据,提示提交成功。
但这时这个方法不想让他结束,还想继续做完其他的事情,然后继续返回一个数据,前台接到之后,显示处理完毕。
困扰的地方:
当return第一个消息的时候,方法就已经结束了,后续的方法怎么执行?如果第一个消息不返回的话,前台页面一直在等待,假如第二个方法需要很长时间呢?
求一个思路???

C币本来有几百个,今天一看咋都没了。。。。。。。。。会有人解答吗

9个回答

前端接收到第一条数据验证通过后再发起一个ajax请求

weixin_36380516
Java知音_ 可是想在不动前台代码的,只改后台的逻辑,不知道可不可能实现
接近 3 年之前 回复
weixin_36380516
Java知音_ 大哥这种方法是可行的
接近 3 年之前 回复

你可以用个任务表,调用的时候将此次任务记录在这个表中,当第三方返回的时候你就修改任务表,改为成功状态,
界面显示的时候关联查询一下这个表就可以了

weixin_36380516
Java知音_ 这种方案应该也行得通,谢谢。已经解决了
接近 3 年之前 回复

你这个程序是有多慢,提交成功和处理完毕几乎同时跳出来吧

hao1454507493
我已老去的秋天 回复阿木侠: 我想知道前端不发出两次请求,怎么接受两次返回结果。要么(第一次就不要后台返回)就是前台自己给自己一个“提交成功”,主要处理后面的等待程序。你不想改前端?那么你的返回结果是怎么接收的,能接收的???
接近 3 年之前 回复
weixin_36380516
Java知音_ 处理的很慢,要从第三方接数据,有时候要等一个小时
接近 3 年之前 回复

可不可以在前台数据提交以后,就让前台显示提交成功,等后台处理完了,再返回 处理完毕

weixin_36380516
Java知音_ 就是这样的想法,问题就在于前台如何得知数据提交了?数据提交成功后返回了数据,那么这个方法就结束了,不会去执行后面的处理
接近 3 年之前 回复

你直接用response写响应消息,不要close,写的同时开一个线程去跑你的逻辑,
逻辑处理完成在把处理结果返回去,
这样连接就不会中断了,对于后端和前端来说都有压力,
不知道你为什么要这样,视乎有点得不偿失。

weixin_36380516
Java知音_ 嗯,一楼的前端接收到第一条数据验证通过后再发起一个ajax请求,这个方法是常用的吧,主要前台代码不在我们手上,所以想尽量不去动他
接近 3 年之前 回复

嗯,一楼的前端接收到第一条数据验证通过后再发起一个ajax请求,这个方法是常用的吧,主要前台代码不在我们手上,所以想尽量不去动他

方法很多,消息队列知道不?异步调用你不知道?

http://blog.csdn.net/riapgypm/article/details/50425559 这个是人家写的,严重同步,你其实可以用不到countDown对象,直接交给线程池处理即可。反正你不需要返回值。

weixin_36380516
Java知音_ 学习了,但是这个不能怪我,我只是参与,我也知道动一下前端很好解决,但是人家就是不让动,我也没办法啊
接近 3 年之前 回复

作为一个java码农,请动不动用前端ajax玩

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