jersey实现rest入门实例

xiaoxiao2021-02-28  86

原文地址如下:http://blog.csdn.net/rubyway/article/details/8455276 点击打开链接 注解的含义: @Path:与根路径结合形成子资源的URI @PathParam:将参数注入参数的路径 @QueryParam:普通参数传递 @FormParam:表明此参数从HTML属性确定的表单输入 @Produces:响应支持MediaType类型,表示服务端返回到客户端的参数类型 @Consumes:响应支持MediaType类型,表示客户端传递到服务端的参数类型 @Context:引入上下文对象   在Web.xml中配置一个Servlet [html] view plain copy <servlet>          <display-name>JAX-RS REST Servlet</display-name>          <servlet-name>JAX-RS REST Servlet</servlet-name>          <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>          <init-param>              <param-name>com.sun.jersey.config.property.packages</param-name>              <param-value>com.test.rest</param-value>          </init-param>          <load-on-startup>1</load-on-startup>      </servlet>      <servlet-mapping>          <servlet-name>JAX-RS REST Servlet</servlet-name>          <url-pattern>/services/*</url-pattern>      </servlet-mapping>   访问的资源在这里,这个返回的形式有JOSN、和XML [java] view plain copy @Path("/restresource")  public class TestRestResource {        @GET      @Path("/getUser")      @Produces(MediaType.APPLICATION_JSON)      public User getUser() {          User user = new User();          user.setUserName("popo");          user.setAge(29);          return user;      }    }   还需要定义一个User类,必须在类顶一个@XmlRootElement   [java] view plain copy import javax.xml.bind.annotation.XmlRootElement;  @XmlRootElement  public class User implements java.io.Serializable{            private static final long serialVersionUID = 1L;        private String userName = "";            private int age = 0;            public String getUserName() {          return userName;      }        public void setUserName(String userName) {          this.userName = userName;      }        public int getAge() {          return age;      }        public void setAge(int age) {          this.age = age;      }        }    调用一下试试看     public class Main {        public static final String USER_URL = "http://localhost:8080/resttest/services/restresource/getUser";        /**      * @param args      */      public static void main(String[] args) {          Client c = Client.create();          WebResource wr = c.resource(USER_URL);            MultivaluedMap<String, String> params = new MultivaluedMapImpl();          params.add("userName""popo");            User result = wr.get(User.class);                      System.out.println(result);      }    }     在路径中指定参数的使用: [java] view plain copy @GET      @Path("getUser/{id}")      @Produces(MediaType.TEXT_PLAIN)      public String getUserId(@PathParam("id") String id)      {          return id;      }   调用如下: [java] view plain copy String result = wr.path("001").get(String.class);    普通参数传递 [java] view plain copy @GET      @Path("getId")      @Produces(MediaType.TEXT_PLAIN)      public String getId(@QueryParam("id") String id)      {          return id;      }   调用如下: [java] view plain copy String result = wr.queryParam("id""002").get(String.class); 
转载请注明原文地址: https://www.6miu.com/read-85802.html

最新回复(0)