最近寫了一個小的web練習專案,后端接受前端傳來的json資料,并回傳相應的資訊
要求如下:
撰寫一個用于計算加權平均數的Servlet,以Post方式接收如下json格式引數
{
"nums": [1, 2, 3, 4],
"weight": [3, 1, 4, 5],
"accuracy": 2
}
nums表示若干個數,weight表示這些數的權重,accuracy表示保留小數點后多少位(四舍六入五成雙),
首先創建一個web專案

部署tomcat,這個在idea中只有完整版才有,社區版是找不到這個Tomcat Server的
專案創建完了要在run->Edit Configurations中新建一個tomcat,選擇自己tomcat下載路徑即可

然后創建一個類繼承自HttpServlet
接著在web.xml中部署檔案
web.xml部署檔案
形式如下

servlet-mapping 中寫的是虛擬目錄
由于是前后端互動的,所以我們先撰寫前端的html代碼再來到后端處理資料
html端代碼如下:

在這個html界面中我們使用了jquery的庫,可以使用各大廠商現成的庫,也可在在官網復制一份然后創建一個js檔案
這里采用的是復制的方法:
參考jquery庫,以及$符號未定義的解決方法:
在官網找到

點進去將內容全部復制,然后回到idea,在webapp下創建一個js檔案,將所有內容復制過去即可,
在使用的時候就可以
![]()
這樣來應用jquery庫,如果還是出現無法參考的問題,可以嘗試選中src按Alt+Enter來查看提示
那么現在html界面已經寫完了,我們要在后端對前端發送過來的資料進行處理,
因為用到了Servlet和Fastjson,我們需要在lib引入兩個jar包

主要代碼如下

中間的計算我們跳過,直接到最后的回傳json上來,
回傳資料主要使用PrintWriter這個類
我們通過response來回傳這個類的主體

然后對JSONObject添加資料之后
就可以使用printWriter中的write方法來回傳資料到前端
其中可能會出現一個運行時的例外,java.lang.NoClassDefFoundError:com/alibaba/fastjson/JSONOBject
有一個解決方法是復制Tomcat->lib->servlet對應的jar包到jdk->jre->lib->ext中,然后重啟ide即可
附一張工程目錄圖

最后我們來看一看運行效果
F12查看回傳資料
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/350980.html
標籤:其他
上一篇:JavaWeb servlet jsp 使用七牛云API上傳圖片
下一篇:知識點復習
