<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">GET、POST、PUT、DELETE</span>
get操作是安全的,所谓的安全是不管多少次操作,对资源是状态是不会改变的。
PUT,DELETE操作是幂等的。所谓幂等是指不管进行多少次操作,结果都一样(同一个URL的多个请求所返回的结果是一样的)。比如我用PUT修改一篇文章,然后在做同样的操作,每次操作后的结果并没有不同,DELETE也是一样。安全就幂等
POST操作既不是安全的,也不是幂等的,比如常见的POST重复加载问题:当我们多次发出同样的POST请求后,其结果是创建出了若干的资源。
幂等和安全的意义就是在资源在没有达到目标前,可以重复操作,不会对资源产生副作用。
配置如下:
在web.xml中配置拦截器
<servlet-mapping>
<servlet-name>springDispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<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>
在方法上的@RequestMapping配置method属性,属性值为对应的请求类型
页面数据提交时配置对应的<input type="hiddren" name="_method" value="对应请求类型的值(delete or put)" />
如果是删除炒作可通过异步方式把_method 传过去