javaweb编程时,通过request向前端传递数据时,前端总是无法获得正确的数据,求助,谢谢。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javaweb编程时,通过request向前端传递数据时,前端总是无法获得正确的数据,求助,谢谢。相关的知识,希望对你有一定的参考价值。

在前端,通过ajax不断向服务器发送请求,代码如下:

服务器从一开始就不断地查询数据库,在一个特定的类中通过线程实现:

getCurrentLabels()方法如下:

pageController通过如下方法向前端发送数据:

大致的过程就是这样,但是前端获取的数据总是初始化时候的数据,似乎服务器并没有把新的数据覆盖掉。求教,谢谢。
function sendToServer()
xmlHttp.open("POST","login?arg=11",true);
xmlHttp.send(null);


function sendToServerOfGetLabels()
sendToServer();

这是发送请求用的。
下面这个方法是接收响应用的:
xmlHttp.onreadystatechange=function()
if(xmlHttp.readyState==4)
alert("<%=((int[])request.getAttribute("init"))[0] %>");//测试

;

参考技术A 我觉得你应该把你的sendToServerOfGetLabels这个方法贴出来看一下。后台的那些方法只要返回页面的部分就行了。
很显然你的程序不会实现你预期的效果的:
你在后台用rdt.forward的方式返回到main.jsp页面,每次返回的时候页面会被重新加载,页面重新加载的时候肯定数据都是初始化的时候的数据啊。页面整体都被刷新了一下也。
你应该用ajax返回数据的方式来返回啊。用将信息通过json的方式返回sendToServerOfGetLabels这个方法里面,然后在这个方法里面对相应的值进行抽取,放到想要的位置就行了。而不是直接返回到页面,返回到页面之后,你的那个定时器就没有意义了。追问

已贴。
虽然每次都是重新加载页面,但是req里的需要发送的对象的值不会被覆盖吗?谢谢

追答

你没有发现你是通过ajax提交,但是没有返回到ajax里面吗??
从哪里进去就要从哪里出来啊。不能直接返回到其他页面(虽然还是当前页面),你只需要把数据返回到ajax的对象里就行了。

追问

那我是不是还可以使用req.setAttribute方式返回,只是前端用ajax接收就可以了?

追答

可以用setAttribute的方法来做。一般是返回list或者map的对象的。通过json方式返回的。

本回答被提问者和网友采纳

以上是关于javaweb编程时,通过request向前端传递数据时,前端总是无法获得正确的数据,求助,谢谢。的主要内容,如果未能解决你的问题,请参考以下文章

JavaWeb问题关于request域的说法,哪个错误?请说明原因!

Javaweb学习——request&response

JavaWEB前端向服务器端发送对象

javaweb 页面跳转传递参数

javaweb dev 入

JavaWeb 过滤敏感词汇