JSPs only permit GET POST or HEAD的解决方案(REST风格)
2017-08-03 12:02
381 查看
项目使用的是jdk1.8 tomcat8
我是在看尚硅谷springmvc视频的时候遇到的情况,如果改变tomcat的版本也可以解决问题,但是非吾愿
直接看代码说问题,需要修改两点
Controller类
@Controller
public class SpringMVCTest {
private static final String SUCCESS="success";
@RequestMapping(value="/testRest/{id}", method=RequestMethod.PUT)
public String testRestPut(@PathVariable Integer id){
System.out.println("testRest Put: "+id);
return SUCCESS;
}
@RequestMapping(value="/testRest/{id}", method=RequestMethod.DELETE)
@ResponseBody
public String testRestDelete(@PathVariable Integer id){
System.out.println("testRest DELETE: "+id);
return SUCCESS;
}
Index.jsp
<form action="springmvc/testRest/1" method="post">
<input type="hidden" name="_method" value="PUT"/>
<input type="submit" value="TestRest PUT"/>
</form>
<br></br>
<form action="springmvc/testRest/1" method="post">
<input type="hidden" name="_method" value="DELETE"/>
<input type="submit" value="TestRest DELETE"/>
</form>
Web.xml
<filter>
<filter-name>HiddenHttpMethodFilter</filter-name>
<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>HiddenHttpMethodFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
修改这两处之后,就能够正常运行put和delete方法了
我是在看尚硅谷springmvc视频的时候遇到的情况,如果改变tomcat的版本也可以解决问题,但是非吾愿
直接看代码说问题,需要修改两点
Controller类
@Controller
public class SpringMVCTest {
private static final String SUCCESS="success";
@RequestMapping(value="/testRest/{id}", method=RequestMethod.PUT)
//第一个修改的地方 需要加上@ResponseBody
@ResponseBodypublic String testRestPut(@PathVariable Integer id){
System.out.println("testRest Put: "+id);
return SUCCESS;
}
@RequestMapping(value="/testRest/{id}", method=RequestMethod.DELETE)
@ResponseBody
public String testRestDelete(@PathVariable Integer id){
System.out.println("testRest DELETE: "+id);
return SUCCESS;
}
Index.jsp
<form action="springmvc/testRest/1" method="post">
<input type="hidden" name="_method" value="PUT"/>
<input type="submit" value="TestRest PUT"/>
</form>
<br></br>
<form action="springmvc/testRest/1" method="post">
<input type="hidden" name="_method" value="DELETE"/>
<input type="submit" value="TestRest DELETE"/>
</form>
Web.xml
<filter>
<filter-name>HiddenHttpMethodFilter</filter-name>
<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>HiddenHttpMethodFilter</filter-name>
<url-pattern>/*</url-pattern>
//第二个修改的地方 需要加上<servlet-name>mcpMvc</servlet-name>
<servlet-name>mcpMvc</servlet-name></filter-mapping>
修改这两处之后,就能够正常运行put和delete方法了
相关文章推荐
- JSPs only permit GET POST or HEAD的解决方案(REST风格)
- 关于SpringMVC的rest的一个问题: HTTP Status 405 - JSPs only permit GET POST or HEAD.。
- spring mvc 4 rest 错误:JSPs only permit GET POST or HEAD
- 405, HTTP Status 405 - JSPs only permit GET POST or HEAD.。
- SpringMVC: HTTP Status 405 - JSPs only permit GET POST or HEAD问题的解决办法。
- HTTP Status 405 - JSPs only permit GET POST or HEAD
- sringMVC 转发到jsp时出现405错误:JSPs only permit GET POST or HEAD
- springMVC提交更新:e JSPs only permit GET POST or HEAD
- SpringMVC: 处理PUT和DELETE请求时报错:HTTP Status 405 - JSPs only permit GET POST or HEAD.
- SpringMVC HTTP Status 405 - JSPs only permit GET POST or HEAD
- SpringMVC: HTTP Status 405 - JSPs only permit GET POST or HEAD
- springMVC:HTTP Status 405 - JSPs only permit GET POST or HEAD问题
- 调用webapi 错误:使用 HTTP 谓词 POST 向虚拟目录发送了一个请求,而默认文档是不支持 GET 或 HEAD 以外的 HTTP 谓词的静态文件。的解决方案
- SpringMVC rest风格(Post增 Delete删 Put改 get查)
- 在 rest 风格 url 资源中, GET/POST/PUT/DELETE 等方法各有什么作用与区别?
- 基于libcurl实现REST风格http/https的get和post
- SpringMVC rest风格(Post增 Delete删 Put改 get查)
- GO1.5实现简单的http并发请求,支持:GET、POST、HEAD、PUT
- ajax中get与post方法的区别,及乱码的终极解决方案
- 跨域提交时涉及中文编码的解决方案,同时解决post和get方案