zoukankan      html  css  js  c++  java
  • RESTFUL Service : based on Jersey

    REST, Representational State Transfer, is a powerful, lightweight architecture that allows you to work with data in a comprehensive manner via HTTP. Yet, as powerful as REST is, getting it to work with your code can be a bit of a chore without some help. When it comes to coding in Java, Jersey provides the help that you need. Jersey is an open source project that simplifies the work required to adapt your Java code to REST.

    In order to get started, it is helpful to have a basic understanding of the following technologies:

    • Maven: to define a project's dependencies,build the project and run unit tests;
    • Spring: to do runtime property injection;
    • AJAX : to make a XMLHttpRequest back to a web server;
    • JSON: to encapsulate information into a client-side JavaScript object.
    The Jersey annotations:

    Annot ation  Description
    @Path The @Path annotation's value is a relative URI path indicating where the Java class will be hosted, for example, /helloworld. You can also embed variables in the URIs to make a URI path template. For example, you could ask for the name of a user, and pass it to the application as a variable in the URI, like this, /helloworld/{username}.
    @GET The @GET annotation is a request method designator and corresponds to the similarly named HTTP method. The Java method annotated with this request method designator will process HTTP GET requests. The behavior of a resource is determined by the HTTP method to which the resource is responding.
    @POST The @POST annotation is a request method designator and corresponds to the similarly named HTTP method. The Java method annotated with this request method designator will process HTTP POST requests. The behavior of a resource is determined by the HTTP method to which the resource is responding
    @PUT The @PUT annotation is a request method designator and corresponds to the similarly named HTTP method. The Java method annotated with this request method designator will process HTTP PUT requests. The behavior of a resource is determined by the HTTP method to which the resource is responding.
    @DELETE The @DELETE annotation is a request method designator and corresponds to the similarly named HTTP method. The Java method annotated with this request method designator will process HTTP DELETE requests. The behavior of a resource is determined by the HTTP method to which the resource is responding.
    @HEAD The @HEAD annotation is a request method designator and corresponds to the similarly named HTTP method. The Java method annotated with this request method designator will process HTTP HEAD requests. The behavior of a resource is determined by the HTTP method to which the resource is responding.
    @PathParam The @PathParam annotation is a type of parameter that you can extract for use in your resource class. URI path parameters are extracted from the request URI, and the parameter names correspond to the URI path template variable names specified in the @Path class-level annotation.
    @QueryParam The @QueryParam annotation is a type of parameter that you can extract for use in your resource class. Query parameters are extracted from the request URI query parameters.
    @Consumes The @Consumes annotation is used to specify the MIME media types of representations a resource can consume that were sent by the client.
    @Produces The @Produces annotation is used to specify the MIME media types of representations a resource can produce and send back to the client, for example, "text/plain".
    @Provider The @Provider annotation is used for anything that is of interest to the JAX-RS runtime, such as MessageBodyReader and MessageBodyWriter. For HTTP requests, the MessageBodyReader is used to map an HTTP request entity body to method parameters. On the response side, a return value is mapped to an HTTP response entity body using a MessageBodyWriter. If the application needs to supply additional metadata, such as HTTP headers or a different status code, a method can return a Response that wraps the entity, and which can be built using Response.ResponseBuilder.

     

    Integrate with Spring:

     

    <servlet> 
      <servlet-name>REST</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.wonderfan.rest</param-value>
      </init-param>
      <load-on-startup>1</load-on-startup>
    </servlet> 
    <servlet-mapping>
      <servlet-name>REST</servlet-name>
      <url-pattern>/rest/*</url-pattern>
    </servlet-mapping> 


  • 相关阅读:
    CCPC 2017秦皇岛 M Safest Buildings (给一个圆心在原点的大圆R ,以及n个点 在大圆内存在一个小圆r 问那些点同时在两圆的概率最大)
    LightOJ 1366
    Android UI -- 内容简介
    Android 布局优化 -- 学习笔记
    arcgis android 加载google切片 天地图切片 并且能进行缓存
    Eclipse 卸载插件
    Android 不能勾选 Project Build Target
    spatialite-android-library 环境搭建
    HUFFMAN 树
    指示器随机变量
  • 原文地址:https://www.cnblogs.com/bbsno1/p/3268783.html
Copyright © 2011-2022 走看看