Tomcat 400错误 问题集锦

本文解析了SpringMVC中因前后台参数类型不一致导致的400错误,提供了详细的检查和解决方案,并针对表单提交时出现的400错误进行了深入分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.前后台参数类型不一致

上图错误提示就是客户端发送的请求不能找到你的具体的页面或者地址,这是Spring MVC抛出的错误,这样我们就要进行参数的检查,一定是JSP提交的参数和Controller里面的参数不一致(有很多种情况,比如我的问题),

我的JSP代码:

<input type="hidden" title="id" name="id" value="${admin.id}">

在这里我的这个字段是叫做  "id" ,在看看我的controller里面的参数:

public AdministratorOtaResponse administratorAdminUpdate(
         @RequestParam(value = "adminrId", required = true) int id,
        @RequestParam(value = "sitePassword", required = true) String sitePassword,
        @RequestParam(value = "realName", required = true) String realName) {

在我的controller里面的我的Value = "adminId",就是因为这个问题啦,所以我只要改成Value = “id”,所有的事情就OK啦。

原因:这是因为前台form表单中的某些参数 和 后台接受的参数类型不一致导致的。即参数名称相同,但是类型不一致。spring mvc在绑定参数的时候出现异常,所以返回400错误。但是坑爹的地方在于,这个异常会被spring mvc吃掉,不会显示在控制台中。

解决办法:检查form表单中的参数和后台的参数对应,看是否有参数名相同但是类型不一致的情况。或者把当前日志设为debug 级别,然后在日志中即可看到spring 抛出的异常信息,即可发现哪个参数出现了错误。

2.SpringMVC form 表单提交报400错误

错误代码:
HTTP Status 400 -
type Status report
message
description The request sent by the client was syntactically incorrect.
Apache Tomcat/7.0.47

原因:

400 请求出错 
由于语法格式有误,服务器无法理解此请求。不作修改,客户程序就无法重复此请求。
在 SpringMVC 中的 Action 中处理前台 ajax 请求传过来的 json 数据直接转成对应的实体类时出错:
400 Bad Request,后台也不报错,400指的的是请求无效(请求有语法问题或者不能满足请求)。

解决办法:

检查实体类的 javabean 里边的类型是否和 springmvc form 的 form 表单名是否一致。
我的错误原因是两个关联的实体类导致在 form 表单中 name 名称不一致:
Employee.java 

 

  不断更新中。。。

转载于:https://www.cnblogs.com/dadonggg/p/7803625.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值