javax.?ws.?rs
阿新 • • 發佈:2017-12-11
sap etc 其他 () 查詢參數 ant teacher mat []
如果需要為參數設置默認值,可以使用
public class RestJaxRsServer { public static void main(String[] args) throws Exception { Component component = new Component(); component.getServers().add(Protocol.HTTP, 8009); component.getDefaultHost().attach(new RestJaxRsApplication(null)); component.start(); System.out.println("The restlet server started ..."); } }
public class RestJaxRsApplication extends JaxRsApplication { public RestJaxRsApplication(Context context) { super(context); this.add(new MyApplication()); } }
public class MyApplication extends Application { @Overridepublic Set<Class<?>> getClasses() { Set<Class<?>> resources = new HashSet<Class<?>>(); resources.add(StudentResource.class); resources.add(TeacherResource.class); resources.add(TestResource.class); return resources; } }
@Path("/test") public class TestResource { @GET @Path("test") @Produces("text/html") public String test(@QueryParam("name") String name,@DefaultValue("10") @QueryParam("age") int age) throws InterruptedException { System.out.println("name="+name); System.out.println("age="+age); return "SUCCESS"; } }
1、概述
@Consumes
註釋代表的是一個資源可以接受的 MIME 類型。
@Produces
註釋代表的是一個資源可以返回的 MIME 類型。
這些註釋均可在資源、資源方法、子資源方法、子資源定位器或子資源內找到。
常見幾個註解
@Cookieparam
@FormParam
@HeaderParam
@MatrixParam
@PathParam
@QueryParam
@BeanParam
總共7個註解。
這裏我先介紹下以下三個註解
@MatrixParam
@PathParam
@QueryParam
這三個註解都是從URL裏面取東西的。
@MatrixParam取URL分號(;)後面的參數。這個也要註意,一定要在?號前面。
@PathParam取URL路徑裏的參數。使用的時候需要註意,要在@Path註解內放一個變量,用{}括起來,然後才可以使用。
@QueryParam取URL?後面的請求參數。
2、@Produces:返回的類型
a.返回給client字符串類型(text/plain)
@Produces(MediaType.TEXT_PLAIN)
b.返回給client為json類型(application/json)
@Produces(MediaType.APPLICATION_JSON)
3、@Consumes
@Consumes
與@Produces
相反,用來指定可以接受client發送過來的MIME類型,同樣可以用於class或者method,也可以指定多個MIME類
型,一般用於@PUT
,@POST
a.接受client參數為字符串類型
@Consumes(MediaType.TEXT_PLAIN)
b.接受clent參數為json類型@Consumes(MediaType.APPLICATION_JSON)
其他註解:
@PathParam
@GET @Path("{username"}) @Produces(MediaType.APPLICATION_JSON) public User getUser(@PathParam("username") String userName) { ... }
@QueryParam
獲取get請求中的查詢參數:
@GET @Path("/user") @Produces("text/plain") public User getUser(@QueryParam("name") String name, @QueryParam("age") int age) { ... }
如果需要為參數設置默認值,可以使用@DefaultValue
,如:
@GET @Path("/user") @Produces("text/plain") public User getUser(@QueryParam("name") String name, @DefaultValue("26") @QueryParam("age") int age) { ... }
@FormParam
獲取post請求中表單中的數據:
@POST @Consumes("application/x-www-form-urlencoded") public void post(@FormParam("name") String name) { // Store the message }
@BeanParam
獲取請求參數中的數據,用實體Bean進行封裝
@POST @Consumes("application/x-www-form-urlencoded") public void update(@BeanParam User user) { // Store the user data }
javax.?ws.?rs