美文网首页
4、SpringMVC-RequestMapping

4、SpringMVC-RequestMapping

作者: 唯老 | 来源:发表于2019-08-24 20:17 被阅读0次

一、作用

这个注解主要作用其实就是一个路径.专业名字叫关系映射.他一般用于 Controller 的类与某个方法中
还有就是对HTTP请求方式进行限定

二、源码

@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Mapping
public @interface RequestMapping {
    String name() default "";
    @AliasFor("path")
    String[] value() default {};
    @AliasFor("value")
    String[] path() default {};
    RequestMethod[] method() default {};
    String[] params() default {};
    String[] headers() default {};
    String[] consumes() default {};
    String[] produces() default {};
}

三、说明

1、属性

参数 说明
String[] value() (重点)指定请求的实际地址,指定的地址可以是URI Template 模式 等同path
RequestMethod[] method() (重点)指定请求的method类型, RequestMethod.GET、RequestMethod.POST、RequestMethod.PUT、RequestMethod.DELETE等;
String[]consumes 指定处理请求的提交内容类型(Content-Type),例如application/json, text/html;
String[] produces 指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回;
String[] params() (掌握)指定限制请求参数的条件。支持简单的表达式。就是请求地址上的key=value
String[] headers() 指定request中必须包含某些指定的header值,才能让该方法处理请求;

2、http中八种请求

请求方式 说明
GET 请求指定的页面信息,并返回实体主体。
HEAD 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
PUT 从客户端向服务器传送的数据取代指定的文档的内容。
DELETE 请求服务器删除指定的页面。
OPTIONS 允许客户端查看服务器的性能。
TRACE 回显服务器收到的请求,主要用于测试或诊断。
PATCH 实体中包含一个表,表中说明与该URI所表示的原内容的区别

3、使用说明

如果使用在上。就相当于应用的根路径。他的主要作用是为了使我们的 URL 可以按照模块化管理(restful):

商品模块
/shop/add
/shop/update
...
/order/list
/order/add

如果使用在方法上。相当于二级请求地址

四、栗子

在类和方法上使用

@Controller
@RequestMapping("/account")
public class AccountController {
    //  访问地址  /account/login
    @RequestMapping("/login")
    public String login() {
        return "登录";
    }
}

method属性

@Controller
@RequestMapping("/account")
public class AccountController {
    // 只允许post请求访问
    @RequestMapping(value = "/register", method =RequestMethod.POST)
    public String register() {
        return "注册";
    }
        // 允许 GET请求 POST请求访问
    @RequestMapping(value = "/register", method = {RequestMethod.GET,RequestMethod.POST})
    public String register1() {
        return "注册";
    }
}

params属性

@Controller
@RequestMapping("/account")
public class AccountController {
    // 参数中必须包含 id,balance 并且 余额大于0.00
    @RequestMapping(value = "/update", method = RequestMethod.POST, params = {"id", "balance>0.00","!page"})
    public String update() {
        return "修改成功";
    }
}
  • id:表示请求必须包含名为id的请求参数
  • !page:表示请求不能包含名为page的请求参数
  • balance !> 0.00:表示请求必须包含名为params的请求参数,但是其值不能是value

五、补充

1、联合使用 value、method、params

注解的value、method、params及headers分别指定“请求的URL、请求方法、请求参数及请求头”。它们之间是与的关系,联合使用会使得请求的映射更加精细。

2、Ant风格资源地址支持3种通配符(了解)

说明

1、? : 匹配文件名中的一个字符
2、* : 匹配文件名中的任意多个字符(至少有一个字符)
3、** : 匹配多层路径(至少有一层)

栗子

/user/create??       匹配/user/createXX、/user/createYY等URL (??匹配任意两个字符)
/user/*/createUser   匹配/user/xx/createUser、/user/yy/createUser等URL (*匹配任意字符)
/user/**/createUser  匹配/user/createUser、/user/xxx/yyy/createUser等URL (**匹配任意多层路)
注意:其?和*必须要有,如果为空,则不符合

spring-mvc专题

相关文章

  • 4、SpringMVC-RequestMapping

    一、作用 这个注解主要作用其实就是一个路径.专业名字叫关系映射.他一般用于 Controller 的类与某个方法中...

  • 4/4

    已完成 原本想听写一首歌,实在太懒 要改要克服 目标: 1.瘦10斤 2.赚10w 3.学英语and韩语

  • 4/4

    一大早就发现今天的天气冷,一出门冷傻了,其实冷点没什么,关键是在路上要资源,没一人理你。

  • 4/4

    在適合吃糖的年紀,吃苦在適合跳舞的時光,匆匆在適合終老的睡眠,清醒在沒有兒童的節日,兒童在十四歲以前就安葬年輕,沈...

  • 4/4

    第五十六回 曹操大宴铜雀台 孔明三气周公瑾 曹操一直想报赤壁之仇,奈何孙刘联合一直按兵不动,金碧辉煌的铜雀台已竣工...

  • 4—4

    新员工切配考试。

  • 4!4!

    如果找不到一个兴趣爱好重叠的人,那找个能够支持你的也是好的哇

  • 4/4

    点了一杯咖啡,从季风书园挑了三本书,一坐就是一下午。难得拥有这么闲瑕的时光,静静翻阅着书籍,闻着纸墨的芳香,感...

  • 4/4

    7:39我在43路车上了 今天居然这么早 我已经带着饭了 应该会感动死她哦嘻嘻 jx和L两个魔鬼吗 昨天学习通宵 ...

  • 4/4

    无花无酒过清明,兴味萧然似野僧。------《清明感事》王禹偁 我是在无花可观赏,无酒可饮的情况下过这个清明节的,...

网友评论

      本文标题:4、SpringMVC-RequestMapping

      本文链接:https://www.haomeiwen.com/subject/pbaqectx.html