• 常规 Ajax 请求,type:”PUT” ,会报错。因为 Tomcat 不能解析 PUT请求,并封装Map。
    • HttpPutFormContentFilter:过滤器的作用是将“PUT”封装为Map。

    web.xml:

    | <?xml version=”1.0” encoding=”UTF-8”?>
    <web-app xmlns=”http://xmlns.jcp.org/xml/ns/javaee
    xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance
    xsi:schemaLocation=”http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd
    version=”4.0”
    >

    1. <!--1、项目启动,启动Spring的容器,加载配置文件--><br /> <**context-param**><br /> <**param-name**>contextConfigLocation</**param-name**><br /> <**param-value**>classpath:springapplication.xml</**param-value**><br /> </**context-param**><br /> <**listener**><br /> <**listener-class**>org.springframework.web.context.ContextLoaderListener</**listener-class**><br /> </**listener**>
    2. <!--SpringMVC前端控制器,拦截所有请求--><br /> <**servlet**><br /> <**servlet-name**>dispatcherServlet</**servlet-name**><br /> <**servlet-class**>org.springframework.web.servlet.DispatcherServlet</**servlet-class**><br /> <**init-param**><br /> <**param-name**>contextConfigLocation</**param-name**><br /> <**param-value**>classpath:dispatcherServlet-Servlet.xml</**param-value**><br /> </**init-param**><br /> <**load-on-startup**>1</**load-on-startup**><br /> </**servlet**><br /> <**servlet-mapping**><br /> <**servlet-name**>dispatcherServlet</**servlet-name**><br /> <**url-pattern**>/</**url-pattern**><br /> </**servlet-mapping**>
    3. <!--字符集过滤器,需要方在所有过滤器之前--><br /> <**filter**><br /> <**filter-name**>CharacterEncodingFilter</**filter-name**><br /> <**filter-class**>org.springframework.web.filter.CharacterEncodingFilter</**filter-class**><br /> <!--设置字符集编码--><br /> <**init-param**><br /> <**param-name**>encoding</**param-name**><br /> <**param-value**>utf-8</**param-value**><br /> </**init-param**><br /> <!--请求编码强制使用utf-8--><br /> <**init-param**><br /> <**param-name**>forceRequestEncoding</**param-name**><br /> <**param-value**>true</**param-value**><br /> </**init-param**><br /> <!--响应编码强制使用utf-8--><br /> <**init-param**><br /> <**param-name**>forceResponseEncoding</**param-name**><br /> <**param-value**>true</**param-value**><br /> </**init-param**><br /> </**filter**><br /> <**filter-mapping**><br /> <**filter-name**>CharacterEncodingFilter</**filter-name**><br /> <**url-pattern**>/*</**url-pattern**><br /> </**filter-mapping**>
    4. <!--使用rest风格的URL,将普通的post请求转为delete或put--><br /> <**filter**><br /> <**filter-name**>hiddenHttpMethodFilter</**filter-name**><br /> <**filter-class**>org.springframework.web.filter.HiddenHttpMethodFilter</**filter-class**><br /> </**filter**><br /> <**filter-mapping**><br /> <**filter-name**>hiddenHttpMethodFilter</**filter-name**><br /> <**url-pattern**>/*</**url-pattern**><!--拦截所有--><br /> </**filter-mapping**>


    <filter>
    <filter-name>HttpPutFormContentFilter</filter-name>
    <filter-class>org.springframework.web.filter.HttpPutFormContentFilter</filter-class>
    </filter>
    <filter-mapping>
    <filter-name>HttpPutFormContentFilter</filter-name>
    <url-pattern>/</url-pattern>
    </filter-mapping>
    </*web-app
    > | | —- |