SpringMVC -2- @RequestMaping详解

@RequestMapping 映射请求注解
  • SpringMVC使用@RequestMapping注解为控制器指定可以处理哪些 URL 请求
  • 在控制器的类定义及方法定义处都可标注 @RequestMapping
    标记在类上: 提供初步的请求映射信息。相对于 WEB 应用的根目录
    标记在方法上: 提供进一步的细分映射信息。相对于标记在类上的 URL。
    实际映射地址: 类映射路径 / 方法标注url
@RequestMapping参数
String name() default “”;
String[] value() default {}; String[] path() default {};

映射请求的名称, 用于客户端请求, 即映射请求的URL.
模糊匹配 (多个匹配时, 以最精确者优先)

  • ?: 替代任意一个字符
  • *: 能替代任意多个字符, 和一层路径
  • **: 能替代多层路径

@PathVariable 能够获取路径占位符的值
在这里插入图片描述
若 请求地址为: …/user/cat 则: id = “cat”;

RequestMethod[] method() default {};

method: 限定请求方式, 默认接收任何类型的请求
method = RequestMethod.POST, 只接受post请求

String[] params() default {};

params: 规定请求参数

  • param1: 请求中必须包含param1的请求参数
  • !param1: 请求不能包含param1的请求参数
  • param1 != value1: 请求包含param1的请求参数, 但其值不能等于value1
    请求携带param1值不是value1或不携带param1;
  • {“param1=value1”, “param2”}: 请求包含param1=value1与param2的请求参数
String[] headers() default {};

headers: 规定请求头
@RequestMapping(value = “handle”, headers = {“User-Agent=Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Firefox/68.0”} )
规定处理Firefox发来的请求

String[] consumes() default {};

consumes:只接受内容类型是那种的请求, 规定请求头中的Content-Type

String[] produces() default {};

produces:告诉浏览器返回的内容类型是什么, 给响应头中加上Content-Type

REST风格的请求

HTTP 协议里面,四个表示操作方式的动词:GET、POST、PUT、DELETE。
它们分别对应四种基本操作:GET 用来获取资源,POST 用来新建资源,PUT 用来更新资源,DELETE 用来删除资源。
HiddenHttpMethodFilter 支持REST风格的过滤器

	<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>

浏览器 form 表单只支持 GET 与 POST 请求
在发送POST请求时, 添加一个"_method"的隐含参数, 值为值为PUT或DELETE

<form action="springmvc/testRESTPut/1" method="POST">
<input type="hidden" name="_method" value="PUT">
<input type="submit" value="testRESTPut">
</form>

HiddenHttpMethodFilter 会对HttpServletRequest的对象进行重新的封装, 更改请求方式.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值