Jersey(軟體框架)

Jersey(軟體框架)

本詞條是多義詞,共2個義項
更多義項 ▼ 收起列表 ▲

Jersey RESTful 框架是開源的RESTful框架, 實現了JAX-RS (JSR 311 & JSR 339) 規範。它擴展了JAX-RS 參考實現, 提供了更多的特性和工具, 可以進一步地簡化 RESTful service 和 client 開發。儘管相對年輕,它已經是一個產品級的 RESTful service 和 client 框架。與Struts類似,它同樣可以和hibernate,spring框架整合。

jersey1.X使用的是sun的com.sun.jersey

jersey2.X使用的是glassfish的org.glassfish.jersey

由於Struts2+hibernate+spring整合在市場的占有率太高,所以很少一部分人去關注Jersey。所以網上有關於Jersey的介紹很少。但是它確實是一個非常不錯的框架。對於請求式服務,對於GET,DELETE請求,你甚至只需要給出一個URI即可完成操作。
舉個簡單的例子:如果你想獲得伺服器資料庫中的所有數據;那么你可以在瀏覽器或者利用Ajax的GET方法,將路徑設定好;例如:localhost:8080/Student(項目名稱)/studentinfo(項目服務總體前綴)/student(處理student對象的簽注)/getStudentInfo(最後前綴)。這樣就可以獲取所有學生信息。你可以選擇GET獲取的數據的返回類型:JSON,XML,TEXT_HTML(String)..獲取之後,你可以通過JS將這些數據塞到html或者jsp頁面上。
下面是詳解:
web.xml的設定:
<!--定義Jersey的攔截器 -->
<servlet>
<servlet-name>JerseyServlet</servlet-name>
<servlet-class>
com.sun.jersey.spi.spring.container.servlet.SpringServlet
</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<!--服務類所在的資料夾 -->
<param-value>com.mirrors.action</param-value><!-- 之所以我定義為com.mirrors.action就是說明此包中類的作用類似於struts中action層類的作用--!>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>JerseyServlet</servlet-name>
<url-pattern>/new/*</url-pattern><!--項目服務總體前綴 -->
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
StudentAction.java一些代碼:
@Component
@Path("/student")//處理student對象的簽注
public class StudentAction
{
private StudentDao studentdao;
public void setStudentdaoStudentDao studentdao)
{
this.studentdao =studentdao;
}
@GET//獲取方式
@Path("getStudentInfo")//最後前綴
@Produces({ MediaType.APPLICATION_JSON })//返回類型為一個Student對象的JSON數組
public List<Student> getTrade()
{
return studentdao.getStudent();
}
}
這樣一個GET方式的處理就結束了,接下來就是前台提取方式,你可以通過JS控制JSON數組在頁面的呈現方式。
Jersey總計有4中處理方式,即:@GET,@POST,@DELETE,@PUT。由於Jersey中文資料較少。想學習的可以通過官網API學習。
jersey常用註解解釋:
Annotation
作用
說明
@GET
查詢請求
相當於資料庫的查詢數據操作
@PUT
更新請求
相當於資料庫的更新數據操作
@POST
插入請求
相當於資料庫的插入數據操作
@DELETE
刪除請求
相當於數據的刪除數據操作
@Path
uri路徑
定義資源的訪問路徑,client通過這個路徑訪問資源。比如:@Path("user")
@Produces
指定返回MIME格式
資源按照那種數據格式返回,可取的值有:MediaType.APPLICATION_XXX。比如:@Produces(MediaType.APPLICATION_XML)
@Consumes
接受指定的MIME格式
只有符合這個參數設定的請求再能訪問到這個資源。比如@Consumes("application/x-www-form-urlencoded")
@PathParam
uri路徑參數
寫在方法的參數中,獲得請求路徑參數。比如:@PathParam("username") String userName
@QueryParam
uri路徑請求參數
寫在方法的參數中,獲得請求路徑附帶的參數。比如:@QueryParam("desc") String desc
@DefaultValue
設定@QueryParam參數的默認值
如果@QueryParam沒有接收到值,就使用默認值。比如:@DefaultValue("description") @QueryParam("desc") String desc
@FormParam
form傳遞的參數
接受form傳遞過來的參數。比如:@FormParam("name") String userName
@BeanParam
通過Bean的形式傳遞參數
接受client傳遞的bean類型的參數,同時這個bean可以在屬性上配置@FormParam用以解決client的屬性名稱和bean的屬性名稱不一致的問題。比如:@BeanParam User user
@Context
獲得一些系統環境信息
通過@Context可以獲得以下信息:UriInfo、ServletConfig、ServletContext、HttpServletRequest、HttpServletResponse和HttpHeaders等
@XmlRootElement
將bean轉換為xml
如果要將bean以xml或json的格式返回,必須要這個註解。比如:
@XmlRootElement
public class User{...}
@XmlElements
@XmlElement

相關詞條

熱門詞條

聯絡我們