Hidden Http Method Filter

    由于浏览器只支持发送get和post方式的请求,那么该如何发送put和delete请求呢?

    SpringMVC 提供了 HiddenHttpMethodFilter 帮助我们将 POST 请求转换为 DELETE 或 PUT 请求

    HiddenHttpMethodFilter 处理put和delete请求的条件:
    ① 当前请求的请求方式必须为post
    ② 当前请求必须传输请求参数_method

    满足以上条件,HiddenHttpMethodFilter 过滤器就会将当前请求的请求方式转换为请求参数 _method的值,因此请求参数_method的值才是最终的请求方式

    在web.xml中注册HiddenHttpMethodFilter
    image.png

    注:
    目前为止,SpringMVC中提供了两个过滤器:CharacterEncodingFilter和 HiddenHttpMethodFilter

    在web.xml中注册时,必须先注册CharacterEncodingFilter,再注册HiddenHttpMethodFilter
    原因:
    在 CharacterEncodingFilter 中通过 request.setCharacterEncoding(encoding) 方法设置字符集的 request.setCharacterEncoding(encoding) 方法要求前面不能有任何获取请求参数的操作
    而HiddenHttpMethodFilter 恰恰有一个获取请求方式的操作:
    image.png