@GET:該注解標記的方法表明用於處理GET請求,GET方法是冪等且安全的。
@POST:該注解標記的方法表明處理POST請求,POST方法表明是一種創建操作的方法,POST方法是一種寫操作的HTTP請求,RPC中的寫操作均是使用post方法,而在REST中我們只是使用POST方法來添加資源。
@DELETE:該注解標記的方法表明這個方法執行的是一個刪除資源的操作,其返回值可以是void,即沒有返回值。
@Consumes:在服務器端,@Consumes(MediaType.APPLICATION_XML)定義了服務器端要消費的媒體類型,也就是說消費客戶端請求實體的媒體類型,可以是xml、json等類型。
@Produces:@Consumes(MediaType.APPLICATION_XML)定義了服務器端生產的媒體類型,即服務器端產生的響應實體的媒體類型,同樣也可以是xml、json等媒體類型。
@Path:該注解可以標記在類名之上,也可以標記在方法名上。該注解接收一個value參數,表示定義資源的地址。另外,資源地址相同,但是HTTP方法不同的兩個方法是完全兩個不同的REST接口,HTTP方法和資源地址相結合在一起才可以完成對一個資源的定位。
package com.zte.ems.resource; import javax.servlet.http.HttpServletRequest; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.core.Context; import org.springframework.stereotype.Component; @Component @Path("/weclome") public class JerseyResource { @GET @Path("/wrong") public void getPage(@Context HttpServletRequest request) { System.out.println("這是一個get方法!"); } @POST @Path("/wrong") public void postPage(@Context HttpServletRequest request) { System.out.println("這是一個post方法!"); } }
以上面這個類為例,雖然@Path的組合是"/weclome/wrong",但是由於HTTP方法不同,因此,執行的方法體也是不同的。
@QueryParam:該注解表明是一個查詢條件,查詢條件決定了方法的作用域,查詢參數組成了查詢條件。Jersey中使用@QueryParam注解來定義查詢參數。另外注解@QueryParam還可以和注解@DefaultVaule一起使用,注解@DefaultValue的作用則是預置一個默認值,當請求中不包括該參數時候使用這個默認值。
@PathParam:該注解定義路徑的參數信息,每一個參數都對應一個子資源。
@FormParam:該注解表示用來定義表單的參數。
@Context:該注解用來解析上下文參數。(@Context HttpRequest request)