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格式,其他格式的數據另說。
運行結果,就為上述的第一張圖片結果展示