SpringMVC听课笔记(三:使用@RequestMapping映射请求)

1. Spring MVC使用 @RequestMapping 注解为控制器指定可以处理哪些URL请求

2. 标注点:

  --类定义处:提供初步的请求映射信息。相对于WEB应用的根目录

  --方法处:提供进一步的细分映射信息。相对于类定义处的URL。若类未定义@RequestMapping,则方法标记的URL相对于WEB应用的根目录

3. DispatcherServlet 截获请求后,就通过控制器上 @RequestMapping提供的映射信息确定请求所对应的处理方法

4. @RequestMapping除了可以用 请求URL 映射请求外(value),还可以使用  请求方法(method), 请求参数(params), 以及请求头(heads) 映射投射条件,它们之间是  “与” 的关系,联合使用多个条件可以使得请求映射更加精确化

5. params 和 headers支持简单的表达式:

  -- param1:表示请求必须包含名为 param1 的请求参数

  -- !param1: 表示请求不能包含名为 param1 的请求参数

  -- param1 != value1: 表示请求包含名为param1的请求参数,但其值不能为value1

  -- {"param1=value1","param2"}: 请求必须包含名为param1 和param2的两个请求参数,且param1参数的值必须为value1

6.例子

  

  @RequestMapping里面的url value值的反斜线  “/” 可加可不加

7. @RequestMapping 还支持Ant风格的URL:

  -- ?     匹配文件名中一个字符

  -- *     匹配文件中的任意字符

  -- **    匹配多层路径

8. @PathVariable映射URL绑定的占位符

  -- 带占位符的URL是Spring3.0新增的功能,该功能在SpringMVC向REST目标挺进发展的过程中具有里程碑的意义

  -- 通过@PathVariable 可以将URL中占位符参数绑定到控制器处理方法的入参中: URL中的 {xxx} 占位符可以通过 @PathVariable("xxx") 绑定到操作方法的入参中

    

9. REST(自己写的例子中暂时有错)

  1) REST风格的URL(左边是rest,右边是传统的)

  -- 新增:  /order  POST                 

  -- 修改:  /order/1  PUT                update?id=1

  -- 获取:  /order/1  GET     get?id=1

     -- 删除: /order/1  DELETE   delete?id=1

  2)html貌似只能发送get(a链接)和 post(表单)。如何发送PUT请求和DELETE请求呢?

    -- 需要在web.xml中配置 HiddenHttpMethodFilter

    -- 需要发送POST请求

    -- 需要在发送POST请求时携带一个 name="_method" 的隐藏域, value 为 DELETE 或者PUT

  3)在SpringMVC 的目标方法中如何得到id?

    -- 使用 @PathVariable 注解 

原文地址:https://www.cnblogs.com/heyboom/p/11312547.html