用spring mvc+mybaties写用户信息修改出现HTTP 405 错误--Method not allowed

本文介绍了一种常见的HTTP状态码405错误的解决方法,该错误通常由于前端请求方法与后端接受方法不匹配引起。通过调整后端控制器中的请求映射方法,解决了前后端方法不一致的问题。

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

一般405问题都是前的请求方法与后台的接受方法不一致导致的问题。

我的前台jsp页面代码

  <a href="modifyinstitutionView.do?action=updateinstitutionView&id={{id}}">修改</a>

后台
@RequestMapping(value="/modifyinstitutionView.do",method = RequestMethod.POST)
	public String updateinstitutionView(HttpServletRequest request){
		int idnew = Integer.parseInt(request.getParameter("id"));
		Map institutions=institutionService.selectByPrimaryKey(idnew);
		request.setAttribute("updateDetail",institutions);
		return "updateinstitution";
	}
前台的那种传值方式默认是get请求,后台用post接受就导致405错误。将后台的method代码删除,可是还是不能运行。

我在idea2017对项目进行了热部署,步骤如下

1.

2点击蓝色部分的选项.

3.

4.

5.

6

在用本地的tomcat9运行项目的时候会出现jvm端口号已占用,dubug启动的时候也会出现端口号被占用的情况,具体原因我也不知道,就按照提示回到上面的步骤修改下端口就行。出现debug不能启动的问题建议直接重启电脑,省事方便。再次运行项目即可。我以为进行了热部署,修改了mapper.xml里面的代码,可以不启动tomcat服务器,然后是我想太多。还是要重新启动。之后我的修改用户信息页面就可以正常显示!!!!

### 解决Tomcat HTTP Status 405 Get Not Supported 的方案 当遇到 `HTTP Status 405Method Not Allowed` 错误时,通常是因为服务器配置或应用程序逻辑不允许所请求的方法(如 GET)。以下是可能的原因及其解决方案: #### 1. **检查控制器中的方法定义** 如果使用的是 Spring MVC 或其他框架,则需要确认控制器中是否有针对该 URL 定义了相应的 GET 方法处理函数。如果没有显式声明 GET 请求的支持,可能会触发此错误。 ```java @RequestMapping(value = "/example", method = RequestMethod.GET) public String handleGetRequest() { return "This is a response to GET request"; } ``` 上述代码片段展示了如何通过指定 `RequestMethod.GET` 来支持 GET 请求[^1]。 #### 2. **验证 Web 应用的安全约束** 某些情况下,Web 配置文件 (`web.xml`) 中可能存在安全约束规则,这些规则会限制特定资源只允许部分 HTTP 方法访问。例如: ```xml <security-constraint> <web-resource-collection> <url-pattern>/example</url-pattern> <http-method>POST</http-method> </web-resource-collection> </security-constraint> ``` 在此示例中,只有 POST 请求被允许访问 `/example` 资源。因此,应检查并调整 `<http-method>` 元素以包含所需的 GET 请求。 #### 3. **审查 Servlet 映射设置** 确保 servlet-mapping 正确映射到目标 servlet 并未遗漏任何必要的参数。例如: ```xml <servlet-mapping> <servlet-name>dispatcherServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> ``` 这里需要注意,默认的 dispatcher servlet 是否已正确定义以及其 url-pattern 是否覆盖所需路径。 #### 4. **考虑 Tomcat 自身限制因素** 尽管当前问题是关于 GET 不受支持,但如果之前存在类似 JSON 字符串传输失败的情况 (如提到的 Invalid character found),也可能间接影响正常功能实现。可以尝试升级至更高版本的 Tomcat 或者修改 server.xml 文件来放宽字符集检测标准: ```properties relaxedQueryChars="|{}[]" ``` 这一属性可以帮助规避因特殊字符引起的问题,从而减少潜在冲突导致的行为异常[^2]。 综上所述,要彻底解决问题需综合分析多个层面的因素,并逐一排查直至找到根本原因所在。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值