zoukankan      html  css  js  c++  java
  • Jersey初谈

           这是我为百度百科编辑的关于Jersey的一些资料。可能由于相对中文资料较少,导致人们无法正常地从搜索引擎中获取相关Jersey的中文资料。

           什么是Jersey ,Jersey本质就是一个RESTfull Web Service in Java 框架,什么是REST?REST本意是 表示性状态转移,与之相对的是遵守文件传输协议(FTP)的 可寻址,无状态性的。Jersey是一种面向资源的架构方式。利用HTTP协议,让每一个URI代表一个资源,访问一个URL就会传输给用户一个资源。

       目前,主要通过两种方式获取资源,一种是ROA,即:通过简单接口,直接暴露数据;另外一种则是ROC,即:通过复杂的编程语言式接口,暴露其算法。而Jersey就是通过ROA获取资源。资源亦是一种数据。

         遵守HTTP协议可以暴露请求的方式,请求的URI,请求的参数,请求的载体,以及回馈的数据,如下

    : 这是一段来自浏览器的HTTP请求参数

    <!--begin-->

    1. Request URL:
      http://192.168.1.222:8080/lansaipu/lansaipu/ans/cf1Page
    2. Request Method:
      POST
    3. Status Code:
      200 OK
    4. Request Headersview source
      1. Accept:
        */*
      2. Accept-Encoding:
        gzip,deflate,sdch
      3. Accept-Language:
        zh-CN,zh;q=0.8,en;q=0.6
      4. Connection:
        keep-alive
      5. Content-Length:
        167
      6. Content-Type:
        application/x-www-form-urlencoded; charset=UTF-8
      7. Cookie:
        JSESSIONID=8F422EF690CF15D611A6EAFCC86BBC09
      8. Host:
        192.168.1.222:8080
      9. Origin:
        http://192.168.1.222:8080
      10. Referer:
        http://192.168.1.222:8080/lansaipu/admin/result.html
      11. User-Agent:
        Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36
      12. X-Requested-With:
        XMLHttpRequest
    5. Form Dataview sourceview URL encoded
      1. year:
        2014
      2. zy:
        all
      3. classid:
        俄罗斯进修班
      4. sex:
        all
      5. ty:
        积极主动
      6. zx:
        整合能力
    6. Response Headersview source
      1. Content-Type:
        text/html;charset=UTF-8
      2. Date:
        Thu, 06 Mar 2014 11:53:34 GMT
      3. Server:
        Apache-Coyote/1.1
      4. Transfer-Encoding:
        chunked

    <!--end-->

    下面是编辑百度百科的全文,由于忙碌,只是简单介绍了一下Jersey的简单机制。

    Jersey是一个RESTFUL请求服务JAVA框架,与常规的JAVA编程使用的struts框架类似,它主要用于处理业务逻辑层。与Struts类似,它同样可以和hibernate,spring框架整合。
    由于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。

  • 相关阅读:
    [C#菜鸟]C# Hook (三) Windows常用消息大全
    [C#菜鸟]C# Hook (二) 常用钩子的类型
    C# hook WndProc
    Win7、win8、win10下实现精准截获Explorer拷贝行为
    对“XXX::Invoke”类型的已垃圾回收委托进行了回调。这可能会导致应用程序崩溃、损坏和数据丢失。向非托管代码传递委托时,托管应用程序必须让这些委托保持活动状态,直到确信不会再次调用它们
    VC中MessageBox与AfxMessageBox用法与区别
    C# 强命名程序集,防止dll被修改,混淆下发布
    easyhook报错The given 64-Bit library does not exist
    easyhook源码分析三——申请钩子
    Ext3日记文件系统为什么文件系统还会损坏?
  • 原文地址:https://www.cnblogs.com/MedivhQ/p/3801425.html
Copyright © 2011-2022 走看看