由于浏览器只支持发送 getpost 方式的请求,那么该如何发送 putdelete 请求呢?
    SpringMVC 提供了 **HiddenHttpMethodFilter** 帮助我们将** `POST` **请求转换为** DELETE** **` PUT` 请求 。
    `
    HiddenHttpMethodFilter` **处理 putdelete 请求的条件:

    • 当前请求的请求方式必须为 post
    • 当前请求必须传输请求参数 _method

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

    web.xml 中注册 **HiddenHttpMethodFilter**

    1. <filter>
    2. <filter-name>HiddenHttpMethodFilter</filter-name>
    3. <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter- class>
    4. </filter>
    5. <filter-mapping>
    6. <filter-name>HiddenHttpMethodFilter</filter-name>
    7. <url-pattern>/*</url-pattern>
    8. </filter-mapping>

    注:

    • 目前为止,SpringMVC中提供了两个过滤器:CharacterEncodingFilterHiddenHttpMethodFilter
    • web.xml 中注册时,必须先注册 CharacterEncodingFilter,再注册 HiddenHttpMethodFilter


    原因:**
    CharacterEncodingFilter 中通过request.setCharacterEncoding(encoding) 方法设置字符集的
    request.setCharacterEncoding(encoding) 方法要求前面不能有任何获取请求参数的操作
    HiddenHttpMethodFilter 恰恰有一个获取请求方式的操作:
    String paramValue = request.getParameter(this.methodParam);