Jersey[軟體框架]

Jersey[軟體框架]
Jersey[軟體框架]
更多義項 ▼ 收起列表 ▲

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刪除請求相當於數據的刪除數據操作
@Pathuri路徑定義資源的訪問路徑,client通過這個路徑訪問資源。比如:@Path("user")
@Produces指定返回MIME格式資源按照那種數據格式返回,可取的值有:MediaType.APPLICATION_XXX。比如:@Produces(MediaType.APPLICATION_XML)
@Consumes接受指定的MIME格式只有符合這個參數設定的請求再能訪問到這個資源。比如@Consumes("application/x-www-form-urlencoded")
@PathParamuri路徑參數寫在方法的參數中,獲得請求路徑參數。比如:@PathParam("username") String userName
@QueryParamuri路徑請求參數寫在方法的參數中,獲得請求路徑附帶的參數。比如:@QueryParam("desc") String desc
@DefaultValue設定@QueryParam參數的默認值如果@QueryParam沒有接收到值,就使用默認值。比如:@DefaultValue("description") @QueryParam("desc") String desc
@FormParamform傳遞的參數接受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

相關詞條

相關搜尋

熱門詞條

聯絡我們