springmvc请求方式的转换

1、在页面发出请求的时候,只见过get和post两种请求方式:

1)超链接、js文件加载<script src=”js/jquery.js”>css文件加载<link href=”css/main.css”>都是发出get请求;
2)表单通过method属性设置get或者post请求
3)异步操作:type属性设置get或者post请求

2、请求方式:get、post、delete、put、head、trace、options

http协议只实现了get和post,所以页面只有两种请求方式被实现了:get和post;
那么其他的请求方式没有被实现,可以通过一种手段模拟其他请求方式,比如delete、put、head等等

3、如何实现模拟?

1)必须是post请求才能模拟转换------原始请求是post

<!-- 先模拟一个put请求 -->
<form action="put.action" method="post">
	
</form>

2)固定参数对请求的时候的数据key=value:
_method=delete/put/…

> <!-- 这个标签对应的文本框必须是隐藏的 --> 	<input type="hidden" name="_method"
> value="put"> 	<p>id<input type="text" name="id"></p> 	<p><input
> type="submit" value="提交"></p>

3)在后端控制器中@RequestMapping注解中添加对应的方式(属性=值)

@RequestMapping(value="/put.action",method = RequestMethod.PUT)
	public String put(int id) {
		/
		System.out.println(id);
		/
	//在转发此main.jsp页面时,还是put请求方式;但是此时这个页面的响应使用的是get请求的处理方式
	//405请求方式和处理请求的方式不匹配
	return "redirect:/show.action";
}
@RequestMapping("/show.action")//自动匹配相应的请求方式
	public String show() {
		return "/WEB-INF/main.jsp";
	}

4)需要一个过滤器—请求转换的过滤器

<!-- post请求转其他请求方式的过滤器 -->
<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>

4、一般情况下可能会根据不同的CRUD操作,来对应不同的请求方式;
即如果是查询操作–使用get请求、
如果是保存操作–使用post请求、
如果是修改操作–使用put请求、
如果是删除操作–使用delete请求

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值