一、@Path,标注资源类或方法的相对路径
         Path参数的形式有三种:
         1、固定值
         2、纯正则表达式
         3、固定值和正则表达式的混合体
  1. /**
  2. * @功能描述: (Path中的参数可以是固定值)
  3. */
  4. @GET
  5. @Path("test-get-param")
  6. @Produces(MediaType.APPLICATION_JSON)
  7. public Map<String, Object> getNotParam() {
  8. Map<String, Object> map = new HashMap<String, Object>();
  9. map.put("say:", new Date());
  10. return map;
  11. }
  12.  
  13. /**
  14. * @功能描述: (Path中的参数可以是正则表达式)
  15. */
  16. @Path("{id}")
  17. @GET
  18. @Produces("text/plain; charset=utf-8")
  19. public String getPathParam(@PathParam(value = "id") int id) {
  20. return "您好,您输入的数字为:" + id;
  21. }
  22.  
  23. /**
  24. * @功能描述: (Path中的参数可以是多个正则表达式的组合)
  25. */
  26. @Path("{first}_{last}")
  27. @GET
  28. @Produces("application/json; charset=utf-8")
  29. public String getMorePathParam(@PathParam(value = "first") String first,
  30. @PathParam(value = "last") String last) {
  31. return "输入的信息为,first:" + first + ";last:" + last;
  32. }

  

二、@GET,@PUT,@POST,@DELETE,标注方法是用的HTTP请求的类型 

        @GET  : 提供查询方法,所有参数均在URL路径中,只能传输一个或者多个字符串,无法传输对象
        @POST:提供新增方法,参数可以存在URL路径中,也可以存在BODY中。
       如传输文本格式的参数,使用String类型或者基本数据类型;
                         如传输JSON格式的参数,使用map、list或者对象。
        @PUT  : 提供修改方法
        @DELETE:提供删除方法
三、@Produces,标注返回的MIME媒体类型
                             处理返回中文乱码:@Produces("text/plain; charset=utf-8")
       @Consumes,标注可接受请求的MIME媒体类型
四、标记Http请求不同位置:
       @PathParam,@QueryParam,@HeaderParam,@CookieParam,@MatrixParam,@FormParam
       @PathParam:提取URL模版路径中的参数
           例如:URL地址为:http://localhost:8080/rest-resteay-demo/test/324
                      请求模版为:

           参数为:324
        @QueryParam:
             例如:URL地址为:http://localhost:8080/rest-resteay-demo/test/getQueryParam?id=3214
                       请求模版为:

           参数为:43214
          @MatrixParam:GET方式请求时获取路径中与Path正则表达式多出不一致的参数
              例如:URL地址为:http://localhost:8080/RestEasy/test/test--context;color=balck
                         请求模版为:

  1.  
  1. /**
  2. * @功能描述: (使用MatrixParam参数,在使用正则表达式方式入参时,
  3. * 部分参数和Path中无法匹配时,使用MatrixParam获取)
  4. */
  5. @GET
  6. @Path("{model}--{year}")
  7. @Produces("text/plain; charset=utf-8")
  8. public String getMatrixParam(@MatrixParam(value = "color") String color,
  9. @PathParam(value = "year") String year,
  10. @PathParam(value = "model") String model) {
  11.  
  12. return "color: " + color + "; year: " + year + "; model: " + model;
  13. }

参数为:color: black; year: context; model: test

            @Context:获取各种类型请求参数
                例如:请求路径为:http://localhost:8080/RestEasy/test/test-context/123;color=balack
                           模版样例为:

  1.  
  1. /**
  2. * @功能描述: (Context获取Path路径,Matrix参数,PathParam参数)
  3. */
  4. @GET
  5. @Path("test-context/{id}")
  6. @Produces("text/plain; charset=utf-8")
  7. public String getContext(@Context UriInfo uriInfo) {
  8. String path = uriInfo.getPath();
  9. List<PathSegment> lsps = uriInfo.getPathSegments();
  10. String psString = "";
  11. for (PathSegment ps : lsps) {
  12. psString = psString + JSON.toJSONString(ps) + "; ";
  13. }
  14. MultivaluedMap<String, String> map = uriInfo.getPathParameters();
  15. return "path:" + path + "; lsps:" + psString + "; map:"
  16. + JSON.toJSONString(map);
  17. } <span style="color:#808080;"> </span><span style="font-family:'Microsoft YaHei UI';font-size:10.5pt; line-height:1.5">    </span>
                      参数为:path:/test/test-context/123;color=balack; 
                                         lsps:{"matrixParameters":{},"original":"test","path":"test"};
                                                {"matrixParameters":{},"original":"test-context","path":"test-context"}; 
                                                {"matrixParameters":{"color":["balack"]},"original":"123;color=balack","path":"123"}; 
                                         map:{"id":["123"]}
                                         其中:original: 表示原文,Path:表示路径,MatrixParam:表示Matrix参数。
 

RESTEasy常用注解的更多相关文章

  1. Spring系列之Spring常用注解总结

    传统的Spring做法是使用.xml文件来对bean进行注入或者是配置aop.事物,这么做有两个缺点:1.如果所有的内容都配置在.xml文件中,那么.xml文件将会十分庞大:如果按需求分开.xml文件 ...

  2. SpringMVC常用注解實例詳解3:@ResponseBody

    我的開發環境框架:        springmvc+spring+freemarker開發工具: springsource-tool-suite-2.9.0JDK版本: 1.6.0_29tomcat ...

  3. SpringMVC常用注解實例詳解2:@ModelAttribute

    我的開發環境框架:        springmvc+spring+freemarker開發工具: springsource-tool-suite-2.9.0JDK版本: 1.6.0_29tomcat ...

  4. Spring常用注解汇总

    本文汇总了Spring的常用注解,以方便大家查询和使用,具体如下: 使用注解之前要开启自动扫描功能 其中base-package为需要扫描的包(含子包). <context:component- ...

  5. Spring常用注解,自动扫描装配Bean

    1 引入context命名空间(在Spring的配置文件中),配置文件如下: xmlns:context="http://www.springframework.org/schema/con ...

  6. springmvc常用注解与类型转换

    springmvc常用注解与类型转换 一:前置 spring -servlet.xml 注入 <!-- 启用spring mvc 注解 --> <context:annotation ...

  7. SpringMVC常用注解,返回方式,路径匹配形式,验证

    常用注解元素 @Controller 标注在Bean的类定义处 @RequestMapping 真正让Bean具备 Spring MVC Controller 功能的是 @RequestMapping ...

  8. SpringMVC 常用注解

    本文参考了博客,具体请见:http://www.cnblogs.com/leskang/p/5445698.html Spring MVC的常用注解 1.@Controller @Controller ...

  9. spring注解开发中常用注解以及简单配置

    一.spring注解开发中常用注解以及简单配置 1.为什么要用注解开发:spring的核心是Ioc容器和Aop,对于传统的Ioc编程来说我们需要在spring的配置文件中邪大量的bean来向sprin ...

随机推荐

  1. [note]高精度模板

    高精度模板 先定义一个struct struct gj{ int l,s[N]; bool fh; void Print(){ if(fh)putchar('-'); for(int i=l;i> ...

  2. Django 视图之CBV

    CBV 所谓的CBV(class base view) 在视图里面,用类的方式来写逻辑 那么对于FBV,CBV有什么优势? CBV(class base views) 就是在视图里使用类处理请求. P ...

  3. 我的Android进阶之旅------>Android疯狂连连看游戏的实现之状态数据模型(三)

    对于游戏玩家而言,游戏界面上看到的"元素"千变万化:但是对于游戏开发者而言,游戏界面上的元素在底层都是一些数据,不同数据所绘制的图片有所差异而已.因此建立游戏的状态数据模型是实现游 ...

  4. Linux c编程:线程属性

    前面介绍了pthread_create函数,并且当时的例子中,传入的参数都是空指针,而不是指向pthread_attr_t结构的指针.可以使用pthread_attr_t结构修改线程默认属性,并把这些 ...

  5. Redis持久化——问题定位与优化(三)

    核心知识点: 1.fork操作 a.在RDB或AOF重写时,会执行fork操作创建子进程,fork操作是一个重量级操作. b.改善fork操作耗时的手段:避免使用Xen.配置Redis实例最大使用内存 ...

  6. im协议设计选型【转】

    一.im协议的分层设计所谓“协议”是双方共同遵守的规则,例如:离婚协议,停战协议.协议有语法.语义.时序三要素.(1)语法:即数据与控制信息的结构或格式(2)语义:即需要发出何种控制信息,完成何种动作 ...

  7. LeetCode:最少移动次数使得数组元素相等||【462】

    LeetCode:最少移动次数使得数组元素相等||[462] 题目描述 给定一个非空整数数组,找到使所有数组元素相等所需的最小移动数,其中每次移动可将选定的一个元素加1或减1. 您可以假设数组的长度最 ...

  8. Android:日常学习笔记(10)———使用LitePal操作数据库

    Android:日常学习笔记(10)———使用LitePal操作数据库 引入LitePal 什么是LitePal LitePal是一款开源的Android数据库框架,采用了对象关系映射(ORM)的模式 ...

  9. iOS 代码延迟执行

    1. [NSTread sleepForTimeInterval:0.8f] 这个方法 实际效果 好比打断点 等你再恢复断点执行 2.  [self performSelector:@selector ...

  10. Scala window下安装

    第一步:Java 设置 检测方法前文已说明,这里不再描述. 如果还为安装,可以参考我们的Java 开发环境配置. 接下来,我们可以从 Scala 官网地址 http://www.scala-lang. ...