1. 针对的问题:
由于便捷高效,大部分前端采用jsp,但仍存在前端页面为index.html文件,所以,对于前后端数据的传送及显示有一定的问题。
2. 解决办法:
声明:本人前端页面名称index.html,后端产生数据的是servlet层,文件名称为 Pre_sensorServlet.java
需要给以下页面标红的格子里传入由后端获取到的数据(因为项目还未结题,仍处于保密阶段,文字信息已抹掉)
(1) 在前端页面文件中插入ajax(重点是这段代码!!!)
<td id="ttd"> <script language="javascript"> $.ajax({ url : "http://localhost:8080/xxxx(你的工程名字)/Pre_sensorServlet", (这是第一步,用来请求运行并传输后端数据的代码) type : "post",
dataType:"json",(后端传输过来的数据类型,可有可无,如果没有,程序会自行判断数据格式,不过我的是json) success : function(data)(data用来接收Pre_sensorServlet传输过来的数据) { //返回的数据带有[],用replace去掉 ttd.innerText =data.replace(/[|]/g,''); (我输出看了一下,我的数据为[192],因此需要去除中括号,仅保留数据,在之后赋值给td) }, error : function() { alert("数据传输失败!"); } }); </script> </td>
2,展示我的Pre_sensorServlet.java的部分代码
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{ int calPreSensorNum = pre_sensorService.getCalPreSensorNum();//192 本代码返回数据只有一个,list型数据另说 JSONArray data = JSONArray.fromObject(calPreSensorNum); //[192] // 这部分是将获取到的数据转为json response.setCharacterEncoding("utf-8"); PrintWriter respWritter = response.getWriter(); respWritter.append(data.toString()); //[192] }
3. 总结
在ajax中:
url部分,有的人采用注解@requestMapping(value="/")也可以,只是本人在注解方面用的不是特别娴熟,所以直接用绝对路径访问servlet层代码,获取数据。
给td赋值时,由于是html文件,需使用 ttd.innerText = data 来赋值。(ttd为 <td id=ttd></td>)
本人返回的数据为json格式,其他格式的数据另说。
运行结果,就为上述的第一张图片结果展示