RESTful JAX-RS注释示例

本文概述

  • JAX-RS批注
  • JAX-RS @ Path, @ GET和@PathParam批注
  • JAX-RS多个@PathParam批注
  • JAX-RS @FormParam和@POST批注
JAX-RS API提供了以下注释, 以用Java开发RESTful应用程序。我们正在使用jersey实现来开发JAX-RS示例。
单击我下载jersey jar文件。
JAX-RS批注 javax.ws.rs软件包包含JAX-RS批注。
注解 描述
Path 它标识URI路径。可以在类或方法上指定。
PathParam 代表URI路径的参数。
GET 指定方法响应GET请求。
POST 指定方法响应POST请求。
PUT 指定方法响应PUT请求。
HEAD 指定方法响应HEAD请求。
DELETE 指定方法响应DELETE请求。
OPTIONS 指定方法响应OPTIONS请求。
FormParam 代表表单的参数。
QueryParam 表示URL查询字符串的参数。
HeaderParam 代表标题的参数。
CookieParam 代表Cookie的参数。
Produces 定义响应的媒体类型, 例如XML, PLAIN, JSON等。它定义资源类或MessageBodyWriter的方法可以产生的媒体类型。
Consumes 它定义了资源类或MessageBodyReader的方法可以产生的媒体类型。
JAX-RS @ Path, @ GET和@PathParam批注 文件:HelloService.java
package com.srcmini.rest; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.core.Response; @Path("/hello") public class HelloService{ @GET @Path("/{param}") public Response getMsg(@PathParam("param") String msg) { String output = "Jersey say : " + msg; return Response.status(200).entity(output).build(); } }

文件:web.xml
< ?xml version="1.0" encoding="UTF-8"?> < web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> < servlet> < servlet-name> Jersey REST Service< /servlet-name> < servlet-class> org.glassfish.jersey.servlet.ServletContainer< /servlet-class> < init-param> < param-name> jersey.config.server.provider.packages< /param-name> < param-value> com.srcmini.rest< /param-value> < /init-param> < load-on-startup> 1< /load-on-startup> < /servlet> < servlet-mapping> < servlet-name> Jersey REST Service< /servlet-name> < url-pattern> /rest/*< /url-pattern> < /servlet-mapping> < /web-app>

档案:index.html
< a href="http://www.srcmini.com/rest/hello/srcmini"> Click Here< /a>

现在在服务器上运行此应用程序, 你将看到以下输出:
输出:
Jersey say : srcmini

单击我下载此示例
JAX-RS多个@PathParam批注 文件:HelloService.java
package com.srcmini.rest; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.core.Response; @Path("/hello") public class HelloService{ @GET @Path("{year}/{month}/{day}") public Response getDate( @PathParam("year") int year, @PathParam("month") int month, @PathParam("day") int day) { String date = year + "/" + month + "/" + day; return Response.status(200) .entity("getDate is called, year/month/day : " + date) .build(); } }

文件:web.xml
与上面的示例相同。
档案:index.html
< a href="http://www.srcmini.com/rest/hello/2014/12/05"> Click Here< /a>

现在, 在服务器上运行此应用程序, 你将看到以下输出:
输出:
getDate is called, year/month/day : 2014/12/5

单击我下载此示例
JAX-RS @FormParam和@POST批注 文件:HelloService.java
package com.srcmini.rest; import javax.ws.rs.FormParam; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.core.Response; @Path("/product") public class ProductService{ @POST @Path("/add") public Response addUser( @FormParam("id") int id, @FormParam("name") String name, @FormParam("price") float price) { return Response.status(200) .entity(" Product added successfuly!< br> Id: "+id+"< br> Name: " + name+"< br> Price: "+price) .build(); } }

文件:web.xml
与上面的示例相同。
档案:index.html
< form action="rest/product/add" method="post"> Enter Id:< input type="text" name="id"/> < br/> < br/> Enter Name:< input type="text" name="name"/> < br/> < br/> Enter Price:< input type="text" name="price"/> < br/> < br/> < input type="submit" value="http://www.srcmini.com/Add Product"/> < /form>

现在, 在服务器上运行此应用程序, 你将看到以下输出:
输出:
RESTful JAX-RS注释示例

文章图片
RESTful JAX-RS注释示例

文章图片
【RESTful JAX-RS注释示例】单击我下载此示例

    推荐阅读