个性化阅读
专注于IT技术分析

RESTful JAX-RS注释示例

本文概述

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="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="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="Add Product"/>
</form>

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

输出:

jax rs形式参数示例
jax rs批注表单参数示例

单击我下载此示例


赞(0)
未经允许不得转载:srcmini » RESTful JAX-RS注释示例

评论 抢沙发

评论前必须登录!