jersey常用的注解类型

原文地址:http://blog.csdn.net/qq383264679/article/details/50847295

HTTP方法映射到资源的CRUD(创建、读取、更新和删除)操作,基本模式如下:

  • HTTP GET:读取/列出/检索单个或资源集合。
  • HTTP POST:新建资源。
  • HTTP PUT:更新现有资源或资源集合。
  • HTTP DELETE:删除资源或资源集合。


1.@Produces

@Produces 注释用来指定将要返回给client端的数据标识类型(MIME)。 @Produces 可以作为class注释,也可以作为方法注释,方法的 @Produces 注释将会覆盖class的注释。


a.返回给client字符串类型(text/plain)

  1. @Produces(MediaType.TEXT_PLAIN)  

b.返回给client为json类型(application/json)

  1. @Produces(MediaType.APPLICATION_JSON)  

测试:

string类型:

  1. @Path("say")  
  2.     @GET  
  3.     @Produces(MediaType.TEXT_PLAIN)  
  4.     public String say() {  
  5.         System.out.println("hello world");  
  6.         return "hello world";     
  7.     }  

json和bean类型:

  1. @Path("test")  
  2.     @GET  
  3.     @Produces(MediaType.APPLICATION_JSON)  
  4.     public Result<String> test() {  
  5.         Result<String> result = new Result<String>();  
  6.         result.success("aaaaaa");  
  7.           
  8.         return result;  
  9.     }  
  10.       
  11.     @Path("bean")  
  12.     @GET  
  13.     @Produces(MediaType.APPLICATION_JSON)  
  14.     public UserBean bean() {  
  15.         UserBean userBean = new UserBean();  
  16.         userBean.setId(1);  
  17.         userBean.setUsername("fengchao");  
  18.         return userBean;  
  19.     }  


2.@Consumes

@Consumes @Produces 相反,用来指定可以接受client发送过来的MIME类型,同样可以用于class或者method,也可以指定多个MIME类型,一般用于 @PUT @POST

a.接受client参数为字符串类型

  1. @Consumes(MediaType.TEXT_PLAIN)  

b.接受clent参数为json类型

  1. @Consumes(MediaType.APPLICATION_JSON)  


3.请求参数注解

@PathParam

     获取url中指定参数名称:

  1. @GET  
  2. @Path("{username"})  
  3. @Produces(MediaType.APPLICATION_JSON)  
  4. public User getUser(@PathParam("username") String userName) {  
  5.     ...  
  6. }  

请求url:http://localhost/user/jack时,userName值为jack
@QueryParam

         获取get请求中的查询参数:  
  1. @GET  
  2. @Path("/user")  
  3. @Produces("text/plain")  
  4. public User getUser(@QueryParam("name") String name,  
  5.                      @QueryParam("age") int age) {  
  6.     ...  
  7. }  



当浏览器请求http://host:port/user?name=rose&age=25时,name值为rose,age值为25。如果需要为参数设置默认值,可以使用@DefaultValue,如:
  1. @GET  
  2. @Path("/user")  
  3. @Produces("text/plain")  
  4. public User getUser(@QueryParam("name") String name,  
  5.                     @DefaultValue("26") @QueryParam("age") int age) {  
  6.     ...  
  7. }  


@FormParam
         获取post请求中表单中的数据:
  1. @POST  
  2. @Consumes("application/x-www-form-urlencoded")  
  3. public void post(@FormParam("name") String name) {  
  4.     // Store the message  
  5. }  

@BeanParam
        获取请求参数中的数据,用实体Bean进行封装:
  1. @POST  
  2. @Consumes("application/x-www-form-urlencoded")  
  3. public void update(@BeanParam User user) {  
  4.     // Store the user data  
  5. }  

©️2020 CSDN 皮肤主题: 酷酷鲨 设计师:CSDN官方博客 返回首页