javax.ws.rs-api 常用注解

@Consumes

 

指定HTTP请求的MIME类型,默认是*/*,表示任意的MIME类型。该注解支持多个值设定,可以使用MediaType来指定MIME类型。

MediaType的类型大致有:

    application/xml

    application/atom+xml

    application/json

    application/svg+xml

    application/x-www-form-urlencoded  post(@FormData)

    application/octet-stream

    multipart/form-data

    text/plain

    text/xml

text/html

5)@Produces

指定HTTP响应的MIME类型,默认是*/*,表示任意的MIME类型。同Consumes使用MediaType来指定MIME类型。

@Path

    标注class时,表明该类是个资源类,凡是资源类必须使用该注解

    标注method时,表示具体的请求资源的路径

注解位置:类注解、方法注解

@GET @POST @PUT @DELETE

指明接收HTTP请求的方式属于get,post,put,delete中的哪一种,具体指定请求方式,是由客户端发起请求时指定。

注解位置:方法注解

6)@PathParam

配合@Path进行使用,可以获取URI中指定规则的参数。

注解位置:参数注解

@GET 

@Path("{username"}) 

@Produces(MediaType.APPLICATION_JSON) 

public User getUser(@PathParam("username") String userName) { 

    ... 

7)@QueryParam

用于获取GET请求中的查询参数,实际上是url拼接在?后面的参数。

注解位置:参数注解

@GET 

@Path("/user") 

@Produces("text/plain") 

public User getUser(@QueryParam("name") String name, 

                    @QueryParam("age") int age) { 

    ... 

//当浏览器请求http://ip:port/user?name=rose&age=25时,name值为rose,age值为25。如果需要为参数设置默认值,

8)@FormParam     这个就是我们通常的form提交

用于获取POST请求且以form(MIME类型为application/x-www-form-urlencoded)方式提交的表单的参数。

注解位置:参数注解

@POST

@Consumes("application/x-www-form-urlencoded") 

public void post(@FormParam("name") String name) { 

    ...

// 这应该是提交form表单中常见的方式,就不详述了。

9)@FormDataParam    这个就是文件提交

 

用于获取POST请求且以form(MIME类型为multipart/form-data)方式提交的表单的参数,通常是在上传文件的时候。

注解位置:参数注解

 

@HeaderParam

用于获取HTTP请求头中的参数值。

注解位置:参数注解

 

@CookieParam

用于获取HTTP请求cookie中的参数值。

注解位置:参数注解

@GET

public String callService(@CookieParam("sessionid") String sessionid) {

  ...

}

 

@MatrixParam

可以用来绑定包含多个property (属性)=value(值) 方法参数表达式,用于获取请求URL参数中的键值对,必须使用";"作为键值对分隔符。

注解位置:参数注解

@Path("/books")

public class BookService {

    @GET

    @Path("{year}")

    public Response getBooks(@PathParam("year") String year,

            @MatrixParam("author") String author,

            @MatrixParam("country") String country) {

...

    }

}

// 请求1:“/books/2012/”, 解析结果为:年份:2012,作者:null,国家:null

// 请求2:“/books/2012;author=andih”, 解析结果为:年份:2012,作者:andih,国家:null

 

@DefaultValue

配合前面的参数注解等使用,用来设置默认值,如果请求指定的参数中没有值,通过该注解给定默认值。

注解位置:参数注解

@POST

@Path("/user/add")

@Consumes({MediaType.APPLICATION_FORM_URLENCODED})

@Produces({MediaType.APPLICATION_JSON})

public Response addUser(@FormParam("username") String userName, @DefaultValue("0") @FormParam("age") int age,@DefaultValue("1") @FormParam("sex") int sex){

    ...

}

10)

@BeanParam

 

如果传递的较多,使用@FormParam等参数注解一个一个的接收每个参数可能显得太臃肿,可以通过Bean方式接收自定义的Bean,在自定义的Bean中字段使用@FormParam等参数注解。只需定义一个参数接收即可。

注解位置:参数注解

public class MyBean {

   @FormParam("myData")

   private String data;

   @HeaderParam("myHeader")

   private String header;

   @PathParam("id")

   public void setResourceId(String id) {...}

   ...

 }

 

 @Path("myresources")

 public class MyResources {

   @POST

   @Path("{id}")

   public void post(@BeanParam MyBean myBean) {

...

   }

   ...

 }

11)@Context

用来用来解析上下文参数,和Spring中的AutoWired效果类似。通过该注解可以获取ServletConfig、ServletContext、HttpServletRequest、HttpServletResponse和HttpHeaders等信息。

注解位置:属性注解,参数注解

@Path("/user") 

public class Resource { 

    @Context 

    HttpServletRequest req; 

    @Context 

    ServletConfig servletConfig; 

    @Context 

    ServletContext servletContext; 

 

    @GET 

    public String get(@Context HttpHeaders hh) { 

        MultivaluedMap<String, String> headerParams = hh.getRequestHeaders(); 

        Map<String, Cookie> pathParams = hh.getCookies(); 

    } 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JAX-RS是Java API for RESTful Web Services的缩写,它是Java EE平台的一部分,用于创建RESTful Web服务。以下是JAX-RS相关的API: 1. javax.ws.rs.core:这个包定义了JAX-RS核心的基础类,包括HTTP请求和响应,HTTP头信息,URI等。 2. javax.ws.rs.client:这个包提供了JAX-RS客户端API,用于发送HTTP请求和接收HTTP响应。 3. javax.ws.rs.ext:这个包提供了JAX-RS的扩展机制,可以自定义处理HTTP请求和响应的过程。 4. javax.ws.rs.container:这个包定义了JAX-RS的服务器端API,可以实现RESTful Web服务的处理过程。 5. javax.ws.rs.core.Response:这个类表示HTTP响应,包括状态码、响应头和响应体等信息。 6. javax.ws.rs.GET:这个注解指定了一个HTTP GET请求的处理方法。 7. javax.ws.rs.POST:这个注解指定了一个HTTP POST请求的处理方法。 8. javax.ws.rs.PUT:这个注解指定了一个HTTP PUT请求的处理方法。 9. javax.ws.rs.DELETE:这个注解指定了一个HTTP DELETE请求的处理方法。 10. javax.ws.rs.PathParam:这个注解用于将URL路径参数映射到Java方法的参数中。 11. javax.ws.rs.QueryParam:这个注解用于将URL查询参数映射到Java方法的参数中。 12. javax.ws.rs.FormParam:这个注解用于将HTML表单参数映射到Java方法的参数中。 13. javax.ws.rs.Produces:这个注解指定了方法返回值的MIME类型。 14. javax.ws.rs.Consumes:这个注解指定了方法接受的请求的MIME类型。 15. javax.ws.rs.core.MediaType:这个类表示MIME类型,包括类型和子类型。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值