400:
浏览器出现了这个异常情况。首先需要认识到这是由于,前端网页设置参数较于后台数据类型差异所造成的
可能有以下几点原因:
1) 输入类型<input name="" value=""> 不匹配
2) name于后台数据类型 如user类的对象不匹配。
3) 由于使用freemarker 后台数据对于时间类型的转换是事先转换好的。 value="createTimeContent" 并且格式为“yyyy-MM-dd” 没有修改这个数据,post 后,格式于timestamp 不匹配导致的。
4) 大部分情况是name属性 与后台的数据类型不同,(写错个字母之类的)原因。像我这种,是两者都犯了。。因为添加了时间格式输出,也没有修改。所以 value 的格式也没有和后台的数据类型相同导致出现 400错误。。。。
5) 具体的错误原因: 修改页面,有个数字值 是从后台传过来的。。传过来 3000显示 3,000 最后错误。原因是3,000格式错了。。。 加一个?c就可以了比如
${user.number?c}
6)情况c:上传图片,然后后台发送给服务器,转换为url,存储数据库。
流程是需要先上传图片,解析为url。我错误的将实体类的名字,和上传图片的name属性值,给设置成一样的了。即浏览器端的图片文件name = "imageUrl" 实体类imageUrl 也有这么个字段。就发送400异常。因为name属性相同,所以将jpg文件,传给一个String字符串。。这就是错误原因。
以上方法可解决400错误!
————————————————
404是网页开发中非常常见,也是非常低级的一个异常,出现404都不好意思跟人说。其实只要掌握了SpringMVC的基本流程,了解了在哪些步骤可能会出现导致访问404的错误,按部就班地排查,解决起来是很快的。
首先捋清楚SpringMVC从浏览器发送请求,到服务器响应数据,一共会经过哪些步骤:
1. 浏览器发送请求到前端控制器 DispatherServlet
2. 前端控制器将请求消息转发给处理器映射器 HandlerMapping
3. 处理器映射器将请求消息中的路径根据其映射关系,找到需要执行的Controller方法信息,并返回给前端控制器返回途中经过拦截器(拦截器根据方法拦截,经处理器映射器处理后已确定需要执行的方法信息)
4. 前端控制器将执行方法的映射信息发送给处理器适配器HandlerAdapter
5. 处理器适配器根据方法信息,发送给处理器Handler,找到对应的Controller方法并执行
6. Handler执行完返回一个ModelAndView对象给处理器适配器
7. 处理器适配器将ModelAndView对象返回给前端控制器
8. 前端控制器将ModelAndView对象发送给视图解析器ViewResolver
9. 视图解析器将ModelAndView对象解析,返回一个View对象给前端控制器
10. 前端控制器将Model中的数据填充到View中,得到一个具体的页面
11. 前端控制器将页面视图响应给浏览器
通过图解标记出其中三个可能出现404的步骤:
————————————————