Jersey框架基础总结

概览

  • 基于restful风格访问中使用的多种注解介绍
  • restful风格后台代码接收前台传递json数据的特殊方式



jersey restful风格相关注解介绍
  • @QueryParam
  • queryparam注解用来修饰变量,用来得到GET方式传递的参数,QueryParam注解的具体使用方法如下:
@QueryParam("limit") @DefaultValue("10") Integer limit,
                                 @QueryParam("curpage") @DefaultValue("1") Integer curpage,
(@DefaultValue注解这里就不再多介绍,意思就是当url未携带参数,queryparam未取到值,则将这个queryparam注解标记的变量赋值为defaultvalue设定的值) queryparam注解用来标注变量,而且只有当访问方式为GET,才能去得到访问路径以xxxx?xx=?&xx=?的值。
  • @FormParam
  • formparam注解的功能就跟其含义一样,得到从表单传递过来的值,其具体使用方式如下:
    (@FormParam("name")String name,@FormParam("password")String password)


  • @Consumes
  • consumes注解用来修饰方法,如果是以@GET方式标记的方法,则不需要使用@Consumes注解去标记这个方法了,但是当一个方法以@POST方式标记的方法,则必须使用@Consumes方式去标记这个方法。
    consumes注解用来表示这个post方式标记的方法将接受何种类型的数据。


    1. application/json
    2. application/x-www-form-urlencoded
    3. text/plain
    4. ….
      分别表示接收json 格式参数,form提交参数,以及普通的string类型参数等。还有其他更多的接收参数类型。

      还可以在consumes注解中添加多个接收参数类型。

    @Consumes({MediaType.APPLICATION_JSON})
    @Consumes({MediaType.APPLICATION_FORM_URLENCODED, MediaType.APPLICATION_JSON})


  • @Produces
  • produces注解用来修饰方法,produces注解表示执行方法将返回何种类型的数据,可以是xml类型,也可以是json类型,同consumes注解一样,需要指定需要输出的类型后去标记方法,同样也可以执行返回多个类型。

    @Produces({MediaType.APPLICATION_JSON})
    @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })


  • @Context
  • context注解用来修饰变量,但是修饰的这个变量不一般,context用来修饰的是servlet api,比如HttpServletRequest,HttpServletReponse,HttpHeader等。修饰的形参将会被框架注入这些servlet api。具体使用方式如下:

    public JSONObject getExpertByQueryString(
    @QueryParam(“limit”) @DefaultValue(“10”) Integer limit,
    @QueryParam(“curpage”) @DefaultValue(“1”) Integer curpage,
    @QueryParam(“query_string”) String queryString,
    @Context HttpHeaders headers, @Context HttpServletResponse response)

    这样就可以得到servlert api,可以设置跨域访问以及getparamter之类的了,getparamter最好用queryparam注解标注的变量去获取。

  • @Path
  • path注解用来修饰方法,path注解用来指定访问这个方法的路径,就跟springmvc的requestmapping注解使用方法是一样

    @Path(“findbyquerystr”)
    @Path(“findbycondition/{condition}”)//rest风格


  • @PathParam
  • pathparam用来修饰变量,pathparam用来获取restful风格url 占位符的值。
    @PathParam(“condition”) String condition,





    特殊方式接收前台传递的json数据

    MutiValuedMap类。

    如果前台使用post方式传递json参数,用MutiValuedMap的实例作为接收参数是不错的选择,MutiValuedMap作为Map的子类,当MutiValuedMap实例接受到json传递的值时,实例所有的key为json的key,value为json的所有key对应的value。

    但是json传值的时候会在样式上有一些区别
    {
    type:’xx’,
    name:’xx’,
    password:’xx’
    }

    如果以上述这种方式传递json,那通过键值形式获取值得方式为

    valueParams.getFirst(“name”); (valueParams为MutiValuedMap类实例)

    {
    type:’xx’,
    info:{
    name:’xxx’,
    password:’xxx’
    }
    }

    如果是以这种方式传递json,那通过键值形式获取值得方式为
    valueParams.getFirst(“info[name]”);

      public JSONObject addExperts(MultivaluedMap<String, String> valueParams,@Context HttpHeaders headers, @Context HttpServletResponse response
        ) throws IOException {
     tableRow.setColumn("ename", valueParams.getFirst("info[ename]"));}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值