欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

javax.​ws.​rs注解:@Conumes 和 @Produces等

程序员文章站 2024-03-25 17:07:58
...
转载地址:http://blog.csdn.net/zhengchao1991/article/details/54375626

问:MIME类型是什么? 答:MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。

1、概述

@Consumes 注释代表的是一个资源可以接受的 MIME 类型。

@Produces 注释代表的是一个资源可以返回的 MIME 类型。

这些注释均可在资源、资源方法、子资源方法、子资源定位器或子资源内找到。


2、@Produces:返回的类型

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

  1. @Produces(MediaType.TEXT_PLAIN)   
@Produces(MediaType.TEXT_PLAIN) 

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

  1. @Produces(MediaType.APPLICATION_JSON)   
@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. }    
    @Path("/say")  
    @GET  
    @Produces(MediaType.TEXT_PLAIN)  
    public String say() {  
        System.out.println("hello world");  
        return "hello world";     
    }  

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. }  
    @Path("test")  
    @GET  
    @Produces(MediaType.APPLICATION_JSON)  
    public Result<String> test() {  
        Result<String> result = new Result<String>();  
        result.success("aaaaaa");  

        return result;  
    }  

    @Path("bean")  
    @GET  
    @Produces(MediaType.APPLICATION_JSON)  
    public UserBean bean() {  
        UserBean userBean = new UserBean();  
        userBean.setId(1);  
        userBean.setUsername("fengchao");  
        return userBean;  
    }

3、@Consumes

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

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

  1.   
@Consumes(MediaType.TEXT_PLAIN)  b.接受clent参数为json类型@Consumes(MediaType.APPLICATION_JSON) 

其他注解:

@PathParam

     获取url中指定参数名称:

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

@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. }   
@GET  
@Path("/user")  
@Produces("text/plain")  
public User getUser(@QueryParam("name") String name,  
                     @QueryParam("age") int age) {  
    ...  
} 

如果需要为参数设置默认值,可以使用@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. }  
@GET  
@Path("/user")  
@Produces("text/plain")  
public User getUser(@QueryParam("name") String name,  
                    @DefaultValue("26") @QueryParam("age") int age) {  
    ...  
}

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



1、概述

@Consumes 注释代表的是一个资源可以接受的 MIME 类型。

@Produces 注释代表的是一个资源可以返回的 MIME 类型。

这些注释均可在资源、资源方法、子资源方法、子资源定位器或子资源内找到。


2、@Produces:返回的类型

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

  1. @Produces(MediaType.TEXT_PLAIN)   
@Produces(MediaType.TEXT_PLAIN) 

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

  1. @Produces(MediaType.APPLICATION_JSON)   
@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. }    
    @Path("/say")  
    @GET  
    @Produces(MediaType.TEXT_PLAIN)  
    public String say() {  
        System.out.println("hello world");  
        return "hello world";     
    }  

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. }  
    @Path("test")  
    @GET  
    @Produces(MediaType.APPLICATION_JSON)  
    public Result<String> test() {  
        Result<String> result = new Result<String>();  
        result.success("aaaaaa");  

        return result;  
    }  

    @Path("bean")  
    @GET  
    @Produces(MediaType.APPLICATION_JSON)  
    public UserBean bean() {  
        UserBean userBean = new UserBean();  
        userBean.setId(1);  
        userBean.setUsername("fengchao");  
        return userBean;  
    }

3、@Consumes

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

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

  1.   
@Consumes(MediaType.TEXT_PLAIN)  b.接受clent参数为json类型@Consumes(MediaType.APPLICATION_JSON) 

其他注解:

@PathParam

     获取url中指定参数名称:

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

@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. }   
@GET  
@Path("/user")  
@Produces("text/plain")  
public User getUser(@QueryParam("name") String name,  
                     @QueryParam("age") int age) {  
    ...  
} 

如果需要为参数设置默认值,可以使用@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. }  
@GET  
@Path("/user")  
@Produces("text/plain")  
public User getUser(@QueryParam("name") String name,  
                    @DefaultValue("26") @QueryParam("age") int age) {  
    ...  
}

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



相关标签: 应用 互联网