
Javaweb中的最常见错误及其解决方法
1、200:表示成功处理业务。
2、400 请求出错: 由于语法格式有误,服务器无法理解此请求。不作修改,客户程序就 无法重复此请求。
-
解决办法:,遇到400问题,最大几率是出现了数据类型不一致的问题,简单来说是Controller层不用正确读取你发送请求附带的参数。该例是我前端传送JSON格式,使用postmen接收。
一.发现400错误的,第一步确认postmen中发送的数据类型是json。比如Headers中Content-Type类型是application/json;或是前端代码Ajax中添加:contentType: 'application/json;charset=UTF-8'(如图);
二.第一步确认postmen中发送的数据格式是否正确。postmen中经常有人有漏写一对“{}“或是缺少逗号,引号,冒号的小问,好在postmen会自动报错提示; 而在前端中你必须重新包装传入参数为JSON型。使用JSON.stringify(params)将params参数重新包装;
三.正常解决以上两个问题,多数人错误也该解决了。如果还没有,我们就要在Controller接收处查找问题。
顺带一说:前端用json传入,后端如果用对象接收,及时传入变量名与该对象的属性名对应上,也不会自动封装进去,当然也不会直接报错。如果想json型自动转换成对象,需要在对象前面添加@RequestBody注解。它会将JSON进行转换成为你指定的对象。
但是我个人更喜欢用JSONObeject或Strng去接受,在用手动将它转化为我需要的对象,因为我传入的对象可能是嵌套好的,其中有一个对象,还有其他对象的List。在头部自动转化就会出现一些问题。
言归正传,第三个可能出现400的问题就在这。使用RequestBody转化成String时,意外报错,类型不匹配。这一点也是我万万没想到的。因为之前一个项目基本都是用String在接收前端的JSON对象。这次却卡在400处。解决的方案很简单,使用JSONObject原原本本的接收JSON对象!直接使用!
3、404:服务器处理的路径存在问题,找不到相关请求资源;
如: (1)在地址栏上的路径有问题(大小写不对); (2)超链接值与地址栏路径不一致; (3)两个servlet-name不一致 ;(4)没有部署项目 (5)项目的组织结构有问题
解决方案:1、检查浏览器路径是否正确;2、中的相对路径是否正确;3、.xml配置中的路径是否正确;4、查看项目是否部署成功;