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