• Jersey构建restful风格的WebSerivices(二)


    一、 总体说明

    XML和JSON 是最为常用的数据交换格式。本例子演示如何将java对象,转成XML输出。

    二、流程

    1.在上文的例子中,创建一个包“com.waylau.rest.bean”

    2.在该包下创建一个JAVA类"User"

    1. package com.waylau.rest.bean;  
    2. import javax.xml.bind.annotation.XmlRootElement;  
    3. /* 
    4.  * 用户 bean 
    5.  * @author waylau.com 
    6.  * 2014-3-17 
    7.  */  
    8. @XmlRootElement  
    9. public class User {  
    10.       
    11.     private String userId;  
    12.     private String userName;  
    13.     private String age;  
    14.       
    15.     public User() {};  
    16.       
    17.     public User(String userId, String userName, String age) {  
    18.         this.userId = userId;  
    19.         this.userName = userName;  
    20.         this.age = age;  
    21.     }  
    22.     public String getUserId() {  
    23.         return userId;  
    24.     }  
    25.     public void setUserId(String userId) {  
    26.         this.userId = userId;  
    27.     }  
    28.     public String getUserName() {  
    29.         return userName;  
    30.     }  
    31.     public void setUserName(String userName) {  
    32.         this.userName = userName;  
    33.     }  
    34.     public String getAge() {  
    35.         return age;  
    36.     }  
    37.     public void setAge(String age) {  
    38.         this.age = age;  
    39.     }  
    40. }  
     

    注意:该类上面增加了一个注解“@XmlRootElement”,在将该类转化成XML时,说明这个是XML的根节点。

     

    3.在“com.waylau.rest.resources”中,增加资源“UserResource“,代码如下:

    1. package com.waylau.rest.resources;  
    2.   
    3. import java.util.ArrayList;  
    4. import java.util.HashMap;  
    5. import java.util.List;  
    6. import java.util.Map;  
    7.   
    8. import javax.ws.rs.Path;  
    9. import javax.ws.rs.Produces;  
    10. import javax.ws.rs.PathParam;  
    11. import javax.ws.rs.core.MediaType;  
    12. import javax.ws.rs.DELETE;  
    13. import javax.ws.rs.GET;  
    14. import javax.ws.rs.POST;  
    15. import javax.ws.rs.PUT;  
    16.   
    17. import com.waylau.rest.bean.User;  
    18.   
    19. @Path("/users")  
    20. public class UserResource {  
    21.     private static Map<String,User> userMap = new HashMap<String,User>();//存储用户  
    22.      /** 
    23.      * 查询所有 
    24.      * @return 
    25.      */  
    26.     @GET  
    27.     @Produces(MediaType.APPLICATION_XML)  
    28.     public List<User> getAllUsers(){       
    29.         List<User> users = new ArrayList<User>();  
    30.         User u1 = new User("001","WayLau","26");  
    31.         User u2 = new User("002","King","23");  
    32.         User u3 = new User("003","Susan","21");  
    33.           
    34.         userMap.put(u1.getUserId(), u1);  
    35.         userMap.put(u2.getUserId(), u2);  
    36.         userMap.put(u3.getUserId(), u3);  
    37.           
    38.         users.addAll( userMap.values() );  
    39.         return users;  
    40.     }  
    41.       
    42.     @GET  
    43.     @Path("/getUserXml")  
    44.     @Produces(MediaType.APPLICATION_XML)  
    45.     public User getUserXml() {  
    46.      User user  = new User();  
    47.      user.setAge("21");  
    48.      user.setUserId("004");  
    49.      user.setUserName("Amand");  
    50.      return user;  
    51.     }  
    52.       
    53.    
    54.      
    55. }  

    其中MediaType.APPLICATION_XML 说明了是以XML形式输出

    在浏览器输入http://localhost:8089/RestDemo/rest/users/getUserXml,输出单个对象

     

    在浏览器输入 http://localhost:8089/RestDemo/rest/users  输出对象的集合

     

    本文转自:http://blog.csdn.net/kkkloveyou/article/details/21415735

  • 相关阅读:
    UVa
    UVa 1630
    P3891 [GDOI2014]采集资源
    一个非常naive的小学数学魔术证明题
    P2831 [NOIP2016 提高组] 愤怒的小鸟
    P4211 [LNOI2014]LCA
    P4137 Rmq Problem / mex 强制在线做法
    P2272 [ZJOI2007]最大半连通子图
    P5664 [CSP-S2019] Emiya 家今天的饭
    盘点linux操作系统中的10条性能调优命令,一文搞懂Linux系统调优
  • 原文地址:https://www.cnblogs.com/juepei/p/4006734.html
Copyright © 2020-2023  润新知