HiddenHttpMethodFilter要求用Post请求发送Put请求

image.png
如果用Get发送Put请求,会直接跳过过滤器,此时hidden的Put请求就没有意义了

jsp不支持put请求

从Tomcat8开始,put请求发送到jsp页面会报405错误,JSPs only permit GET Post or HEAD

springmvc返回jsp页面时默认调用转发

在springmvc中,return jsp页面时,默认调用转发返回jsp页面。
只有在设置return(“redirect:/url”)时,才会调用重定向返回jsp页面。

重定向会重新发一次请求,请求默认为get请求

重定向后会返回jsp的路径给浏览器,再让浏览器通过默认的get请求访问该路径指向的jsp页面。
重新发送的请求不会保留之前请求发送的数据,因为request域的生命周期只有一个请求。

除了重定向还有什么方法?

如果一定要调用转发不用重定向,也可以在jsp页面的page指令中加入isErrorPage="true",这样jsp就会允许put请求。 :::danger 但这种方法并不是很多人用,大多数人还是使用重定向 :::