@RequestMapping

    @RequestMapping是一个用来处理请求地址映射的注解

      可用于类或方法上。

         类定义处:提供初步的请求映射信息。相当于当前 WEB 应用的根目录
         方法处:提供进一步的细分映射信息。相对于类定义处的 URL。
         若类定义处未标注 @RequestMapping,则方法处标记的 URL 相当于当前 WEB 应用的根目录
         若类定义处标注 @RequestMapping,则方法处标记的 URL 相对于类定义处的@RequestMapping而言的!
         DispatcherServlet 截获请求后,就通过控制器上@RequestMapping 提供的映射信息确定请求所对应的处理方法。

    
      @RequestMapping参数

        1、value

          指定请求的实际地址,指定的地址可以是URI Template 模式;         

            value的uri值为以下三类:

            A) 可以指定为普通的具体值;如@RequestMapping(value="/deleteStudent")

            B)  可以指定为含有某变量的一类值(URI Template Patterns with Path Variables);如@RequestMapping(value="/deleteStudent/{id}"),要在该方法中获取id时,需要使用@PathVariable(value = "id"),普通参数使用@RequestParam(value="id",required=false,defaultValue="123")获取,不加也可以,框架会自动加上,required=false表示不必须有id参数,,defaultValue表示默认值,此方法不能获取对象,对象用@ModelAttribute()获取

            C) 可以指定为含正则表达式的一类值( URI Template Patterns with Regular Expressions);如@RequestMapping(value="/spring-web/{symbolicName:[a-z-]+}-{version:\d\.\d\.\d}.{extension:\.[a-z]}")

        2、method

          指定处理的请求的method类型, GET、POST、PUT、DELETE等; 不能直接响应PUT、DELETE请求,看另一片博客

        3、consumes

          指定处理请求的提交内容类型(Content-Type),例如application/json, text/html;如@RequestMapping(value = "/pets", method = RequestMethod.POST, consumes="application/json"),方法仅处理request Content-Type为“application/json”类型的请求。    

        4、produces

          指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回;如@RequestMapping(value = "/pets/{petId}", method = RequestMethod.GET, produces="application/json"),方法仅处理request请求中Accept头中包含了"application/json"的请求,同时暗示了返回的内容类型为application/json;

        5、params

          指定request中是否包含某些参数值或指定参数必须等于某个值或指定参数必须不等于某个值,满足条件才让该方法处理;如@RequestMapping(value = "/pets/{petId}", method = RequestMethod.GET, params="myParam=myValue"),仅处理请求中包含了名为“myParam”,值为“myValue”的请求;

        6、headers

          指定request中是否包含某些header值或指定header值必须等于某个值或指定header值必须不等于某个值,满足条件才能让该方法处理请求;如@RequestMapping(value = "/pets", method = RequestMethod.GET, headers="Referer=http://www.ifeng.com/"),仅处理request的header中包含了指定“Refer”请求头和对应值为“http://www.ifeng.com/”的请求;
  
         params 和 headers支持简单的表达式:
           param1: 表示请求必须包含名为 param1 的请求参数
           !param1: 表示请求不能包含名为 param1 的请求参数
           param1 != value1: 表示请求可以包含名为 param1 的请求参数,但其值不能为 value1
           {“param1=value1”, “param2”}: 请求必须包含名为 param1 和param2 的两个请求参数,且 param1 参数的值必须为 value1!
    
        @RequestMapping 还支持 Ant 风格的 URL:

          Ant 风格资源地址支持 3 种匹配符:
             ?:匹配文件名中的一个字符

              /user/**/createUser: 匹配 /user/createUser、/user/aaa/bbb/createUser 等 URL
            *:匹配文件名中的任意多个任意字符[0个字符除外!]

              /user/*/createUser: 匹配 /user/aaa/createUser、/user/bbb/createUser 等 URL
            **:** 匹配多层路径          

              /user/createUser??: 匹配/user/createUseraa、/user/createUserbb 等 URL

SpringMVC基础-@RequestMapping的更多相关文章

  1. SpringMVC基础03——常用注解之@RequestMapping

    1.用法 SpringMVC使用@RequestMapping注解,为控制器指定可以处理哪些URL请求,并且可以指定处理请求的类型(POST/GET),如果@RequestMapping没有指定请求的 ...

  2. SpringMVC基础入门

    一.SpringMVC基础入门,创建一个HelloWorld程序 1.首先,导入SpringMVC需要的jar包. 2.添加Web.xml配置文件中关于SpringMVC的配置 1 2 3 4 5 6 ...

  3. SpringMVC基础入门,创建一个HelloWorld程序

    ref:http://www.admin10000.com/document/6436.html 一.SpringMVC基础入门,创建一个HelloWorld程序 1.首先,导入SpringMVC需要 ...

  4. SpringMVC基础配置及使用

    SpringMVC基础配置及使用 SpringMVC:1.SpringMVC和Spring的关系:    软件开发的三层架构: web层[表示层.表现层]---->Service层----> ...

  5. SpringMVC(三) RequestMapping修饰类

    SpringMVC使用@RequestMapping 注解为控制器指定可以处理哪些URL请求. 可以用于类定义以及方法定义: 类定义:提供初步的请求映射信息.相对于WEB应用的根目录. 方法处:提供进 ...

  6. springMVC基础controller类

    此文章是基于 搭建SpringMVC+Spring+Hibernate平台 功能:设置请求.响应对象:session.cookie操作:ajax访问返回json数据: 创建springMVC基础con ...

  7. SpringMVC基础学习(一)—初识SpringMVC

    一.HelloWorld 1.导入SpringMVC所需的jar包        2.配置web.xml      配置DispatcherServlet.DispatcherServlet默认加载/ ...

  8. SpringMVC注解@RequestMapping之produces属性导致的406错误

    废话不多说,各位,直接看图说话,敢吗?这个问题网上解决的办法写的狠是粗糙,甚至说这次我干掉它完全是靠巧合,但是也不否认网上针对406错误给出的解决方式,可能是多种情况下出现的406吧?我这次的流程就是 ...

  9. SpringMVC基础01——SpringMVC的知识结构体系

    1.前言 目前在各大互联网公司使用最热门的技术莫过于SpringBoot以及在其基础之上的SpringCloud,然而学习这些技术的基础在于学好Spring和SpringMVC,准确来说SpringM ...

随机推荐

  1. JS笔记一:动态修改css样式

    ---恢复内容开始--- 最近在学习CSS/JS的样式,两个合学习一起学习,加深JS的书写和了解. 一.通过Javasript修改图片大小 通过函数来传递图片id,height,width,使用doc ...

  2. AOP in dotnet :AspectCore的参数拦截支持

    距离上一篇AspectCore的介绍发布已经很长一段时间了,这篇文章也早该和大家见面,最近一直忙于适应新工作,并在业余时间有幸向何镇汐,Savorboard,农夫,AlexLEWIS等几位大牛请教学习 ...

  3. Android - Daydream 互动屏保

    Android Daydream 互动屏保 API19 API23 Create:2016-03-01 继承DreamService来实现一个自定义屏保 Dreams是当充电的设备空闲,或者插入底座时 ...

  4. Linux基础(七)

    一.nfs服务 nfs(Network File System)即网络文件系统,它允许网络中的计算机之间通过TCP/IP网络共享资源.常用于Linux系统之间的文件共享. nfs在文件传送过程中依赖r ...

  5. jenkins外网slave配置

    背景: 客户提供了测试服务器,但不能外网直连需要通过windows跳板进行进行连接. 方案设定将windows跳板机配置为远程slave节点. 技术支持: jenkins-slave  windows ...

  6. 【Spring】关于SpringMvc监听的知识点

    一,在使用Spring系列框架时,我们需要在Web.xml配置Spring的监听:ContextLoaderListener ContextLoaderListener的作用就是,在Web容器初始化时 ...

  7. 初始jvm(一)---jvm内存区域与溢出

    jvm内存区域与溢出 为什么学习jvm 木板原理,最短的一块板决定一个水的深度,当一个系统垃圾收集成为瓶颈的时候,那么就需要你对jvm的了解掌握. 当一个系统出现内存溢出,内存泄露的时候,因为你懂jv ...

  8. C#中的ToString格式大全

    // C# 日期格式 DateTime dt = DateTime.Now; dt.ToString();//2005-11-5 13:21:25 dt.ToFileTime().ToString() ...

  9. SpringMVC+MyBatis 事务管理一

    前言 spring事务管理包含两种情况,编程式事务.声明式事务.而声明式事务又包括基于注解@Transactional和tx+aop的方式.那么本文先分析编程式注解事务和基于注解的声明式事务. 编程式 ...

  10. [补档][Tvyj 1729]文艺平衡树

    [Tvyj 1729]文艺平衡树 题目 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区间,例如原有序序列是5 4 3 2 1,翻转区间是[2,4]的话,结 ...