zoukankan      html  css  js  c++  java
  • WebService @QueryParam @DefaultValue @PathParam的区别

    1 先来看@queryparam
       先看例子:
     
    Java代码 
     

    Path("/users") 
    public class UserService { 
      
        @GET 
        @Path("/query") 
        public Response getUsers( 
            @QueryParam("from") int from, 
            @QueryParam("to") int to, 
            @QueryParam("orderBy") List<String> orderBy) { 
      
            return Response 
               .status(200) 
               .entity("getUsers is called, from : " + from + ", to : " + to 
                + ", orderBy" + orderBy.toString()).build(); 
      
        } 
      
    }

       URL输入为:users/query?from=100&to=200&orderBy=age&orderBy=name
      此时,输出为:getUsers is called, from : 100, to : 200, orderBy[age, name]
      要注意的是,跟@pathparam不同,@queryparam中,指定的是URL中的参数是以键值对的形式出现的,而在程序中
    @QueryParam("from") int from则读出URL中from的值,
    而@pathparem中,URL中只出现参数的值,不出现键值对,比如:“/users/2011/06/30”

    则:
     
    Java代码 

    @GET 
        @Path("{year}/{month}/{day}") 
        public Response getUserHistory( 
                @PathParam("year") int year, 
                @PathParam("month") int month,  
                @PathParam("day") int day) { 
      
           String date = year + "/" + month + "/" + day; 
      
           return Response.status(200) 
            .entity("getUserHistory is called, year/month/day : " + date) 
            .build(); 
      
        } 

    输出为:
    getUserHistory is called, year/month/day : 2011/6/30

    2 以动态的方式获得:
     
    Java代码 
     

    @Path("/users") 
    public class UserService { 
      
        @GET 
        @Path("/query") 
        public Response getUsers(@Context UriInfo info) { 
      
            String from = info.getQueryParameters().getFirst("from"); 
            String to = info.getQueryParameters().getFirst("to"); 
            List<String> orderBy = info.getQueryParameters().get("orderBy"); 
      
            return Response 
               .status(200) 
               .entity("getUsers is called, from : " + from + ", to : " + to 
                + ", orderBy" + orderBy.toString()).build(); 
      
        }


      


    URL;users/query?from=100&to=200&orderBy=age&orderBy=name
    输出为:
    getUsers is called, from : 100, to : 200, orderBy[age, name]
    注意这里把orderby后的两个参数读入为LIST处理了.


    3 @DefaultValue,默认值

      例子:
     
    Java代码 
     

    @Path("/users") 
    public class UserService { 
      
        @GET 
        @Path("/query") 
        public Response getUsers( 
            @DefaultValue("1000") @QueryParam("from") int from, 
            @DefaultValue("999")@QueryParam("to") int to, 
            @DefaultValue("name") @QueryParam("orderBy") List<String> orderBy) { 
      
            return Response 
               .status(200) 
               .entity("getUsers is called, from : " + from + ", to : " + to 
                + ", orderBy" + orderBy.toString()).build(); 
      
        }

    URL:users/query

    输出:getUsers is called, from : 1000, to : 999, orderBy[name]

    很好理解吧

  • 相关阅读:
    系统维护相关问题
    Python环境维护
    哈希表解决字符串问题
    论文笔记二:《A Tutoral on Spectral Clustering》
    论文笔记之哈希学习比较--《Supervised Hashing with Kernels》《Towards Optimal Binary Code Learning via Ordinal Embedding》《Top Rank Supervised Binary Coding for Visual Search》
    Java中String、StringBuffer、StringBuilder的比较与源 代码分析
    浙大pat1040 Longest Symmetric String(25 分)
    浙大pat1039 Course List for Student(25 分)
    浙大pat---1036 Boys vs Girls (25)
    百炼oj-4151:电影节
  • 原文地址:https://www.cnblogs.com/keitho00/p/4241931.html
Copyright © 2011-2022 走看看