這裡使用Eclipse來進行開發。
先在Eclipse新建一個名為「jaxrs-example」的【Dynamic Web Project】專案。
再來在
idv.jk.jaxrs
套件下,新增一個名為「UserService.java」的類別:
package idv.jk.jaxrs; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.core.Response; @Path("/user") public class UserService { @GET @Path("/{name}") public Response sayHello(@PathParam("name") String name) { String message = "Hello, " + name; return Response.status(200).entity(message).build(); } }其中,宣告在
UserService
類別上的這個@Path("/user")
是跟容器講,若是/user
的URL,就交給我負責。
而在
sayHello
上面的@Path("/{param}")
是說在/user
後面接的URL可視為一個參數,在@PathParam("name")
可以將此參數補捉下來,傳入方法使用,如客戶端使用/user/bio
來做請求,則在sayHello
傳入的name
參數值就會是bio
。
再來在
web.xml
中加入下面程式片段,來設定servlet-mapping
:
這段設定用白話文來講,就是jaxrs-servlet org.glassfish.jersey.servlet.ServletContainer jersey.config.server.provider.packages idv.jk.jaxrs 1 jaxrs-servlet /service/*
/service
開頭的請求,都是用org.glassfish.jersey.servlet.ServletContainer
這個類別來負責,而它會去idv.jk.jaxrs
這個套件下去找,有沒有可以負責特定URL的類別,如上列的UserService
類別就會是被設定為負責處理/service/user
的請求,如:http://localhost:8080/jaxrs-example/service/user/bio,而前列URL中的bio
,就會被捉出來當做傳入sayHello
的參數。
一個簡單的JAX-RS應用程式只要上列兩個檔案的設定即可,再來啟動GlassFish並部署程式,成功之後,開啟瀏覽器,並在網址列輸入:http://localhost:8080/jaxrs-example/service/user/bio,網頁應為回應下列訊息:
參考來源:
沒有留言:
張貼留言