# SpringMVC Debug > ## HTTP Status 404 * 可能的問題: 1. web.xml路徑沒指到servlet.xml 2. servlet.xml中的bean設置問題 3. Controller中的RequestMapping 4. ContextLoader Listener的錯誤可能是導入多餘或相衝突的jar包 5. Spring Form會自動配符合path的name,不用重新給name 6. Spring button 會自動submit form! * 參考: * https://blog.csdn.net/frankenjoy123/article/details/78008656 * https://blog.csdn.net/qq_36769100/article/details/71746449 > ## HTTP Status 400 * 可能的問題: 1. 參數型態前後端不相符 2. 參數多傳遞 3. RequestBody * 參考: * https://blog.csdn.net/tengdazhang770960436/article/details/54694285 * https://www.cnblogs.com/woshimrf/p/spring-web-400.html > ## 端口被占用 * 用 ``` netstat -aon|findstr "8080"``` * 找出占用的程序後用 ``` taskkill /f /PID pid``` > ## 一直吃不到靜態資源 * 第一種方法一直失敗: 採第二種是因為再dispatcher servlet攔截前先處理靜態資源! * https://www.itread01.com/p/631842.html > ## 配置正確,但404 * 往deploy path下的work/tmp看是否有殘存檔案互相衝突 > ## 沒有Error Exception的錯誤 * 查看build中的class是否正確(舊的沒清乾淨) * 記得寫try catch * 記得寫log > ## 用ajax傳送json,後臺無法用request.getParameter取值 * 原因: http中帶的預設content-type與ajax POST不同,導致java後臺無法讀懂 * 解法: 1. 改掉前台的content type:"application/x-www-form-urlencoded" p.s.不須使用JSON.stringfy(data) 2. 在後台使用requestBody接值 注意: 在SpringMVC環境中,@RequestBody接收的是一个Json对象的字符串,而不是一个Json對象。 所以 第一:@RequestBody需要接的參数是一个String化的json,前台js可以直接使用JSON.stringify(json)这个方法来轉化; 第二:从@RequestBody名稱上来看,也就是说要讀取的數據在body裡,所以要發post请求; 第三:@RequestBody接收的是一个String的Json,那么要設置请求contentType,contentType:"application/json,明確的告诉Server發送的内容是json。 * 參考:https://blog.csdn.net/u010648555/article/details/79084466 ###### tags: `spring-mvc`