0 概述

本文档主要讲述JAVA-Jersey的使用说明,并给出了示例。

1 前提条件

  1. java安装并配置好相应的路径

  2. 安装java的IDE Eclipse或者IDEA
    进入各自的官网安装即可:
    Eclipse: https://www.eclipse.org/
    IDEA: https://www.jetbrains.com/

  3. 安装Postman (便于调试)
    进入官网 https://www.getpostman.com/,下载安装即可。

2 Jersey的使用

以下以eclipse为例

2.1 创建maven项目

File >> new >> project >> maven project

在这里选择导入Jersey官网提供的快速构建包,如果没有该选项可以按如下操作:
https://jersey.github.io/documentation/latest/getting-started.html
选择Add Archetype…

添加如下内容:

然后填写Group id 和Artifact id即可完成maven工程的创建

2.2 查看新建的工程项目

创建好项目之后,我们就可以看到官方例子啦,主要有两个类Main.java 和MyResource.java,其中MyResource.java就是我们Restful资源,Main.java就是启动restful服务的类。打开工程中的pom.xml文件,并输入以下内容完成maven工程依赖的添加:

2.3 运行示例

运行Main.java后,在浏览器输入http://localhost:8080/myapp/myresource,可以看到如下输则表示简单例子运行成功。


注意这里的8080为Jersey服务开放的接口,若被其他应用占用,则会报错,可以修改为未被占用的端口进行测试。

2.4 Jersry其他方法调用

@GET方式:提供资源的只读访问
在MyResource.java,新建@GET方法

@Path表示指定的访问路径
@Produces 指定http请求的MIME类型数组类型默认是*/*,表示任意的MIME类型
在Postman中输入 http://localhost:8080/myapp/myresource/test可看到如下返回内容:

@QueryParam
QueryParam查询URI里面?之后的参数进行解析

在Postman中输入http://localhost:8080/myapp/myresource/chen,并指定对应的参数的值可看到如下返回内容:

上图中的key和value分别代表参数的名称和值。
@Path()中设置了传参的方式,若上例子中Path(“/{param1}/{param2}/{param3}”),则这时候的传参方式应该是http://localhost:8080/…/…/…/param1=value1/param2=value2/param3=…

输入 http://localhost:8080/myapp/myresource/陈/18/男 可看到:

@Pathparam(“value”)检索url中的value自动与参数匹配,此时使用@Queryparam参数就会出现错误,因为@Queryparam参数指定格式与@Pathparam参数不一样。
@Fromparam参数以表单的形式,访问的URI被解析成form。
@Headparam参数则是获取http请求头中的参数值。

此时我们在Postman中访问:http://localhost:8080/myapp/myresource/head

可以看到此时我们不需要在URL中输入参数都可以进行相应的访问。这里的@DefaultValue(“18”)为初始默认值设置,当没有指定参数时输入的默认值为“18”。

@POST方式:用于更新现有资源或者创建一个新资源。

例如重写上述/head访问方法,在该访问中新增加一个id参数。并把id设置为@pathparam参数,然后在Postman中输入http://localhost:8080/myapp/myresource/head/02访问:

其他方式
@PUT方式:用于创建一个新资源。(客户端需要提供改变后的完整资源)
@PATCH(UPDATE):表示在服务器更新资源(客户端需要提供改变的属性【可以简单理解为补丁】)。
@DELETE方式:用于移除一个资源。
@OPTIONS方式:用于获取资源上支持的操作。
@HEAD方式:只返HTTP header,不返回HTTP body。获得一个资源的元数据,比如一个资源的hash值或者最后修改日期。

2.5 Jersey实现jar包的调用

首先,把新建的项目导出为jar包。选中需要导出的项目,右击选择Export,如图:
然后选择JAR file,设置导出的路径即可。我们需要用到其他jar包时,也可以在maven官方仓库中进行查找,下载并导入即可。
Maven中央仓库地址为:
https://mvnrepository.com/

这时我们可以在我们刚刚新建的Jersey_test项目中导入外部jar包。选中Jersey_test项目,右击选择Build path,Configure build path…,如图:

选择Add External JARs,选择jar包的路径,导入即可。导入后可以看到我们的jar包:

下图分别是原来jar包中的内容,和新的@POST测试方法


在Postman中运行即可看到如下测试结果:

3 Jersey实现对FastDFS的调用

在开始之前请先完成FastDFS集群环境的搭建,并实现可以使用JAVA调用,详情请看之前我的文章《搭建分布式FastDFS集群》、《FastDFS-JAVA-Client使用示例》。
导出FastDFSTest的jar包,并导入到Jersy_test项目中。

在MyResource中新建@POST方法

这里的multipart/form-data,表示不对字符编码。在使用包含文件上传控件的表单时,必须使用该值。这里我们的参数包含路径,因此要采用这样的传参方式。另外两种常见的传参方式为:
application/x-www-form-urlencoded 在发送前编码所有字符(默认);text/plain 空格转换为 “+” 加号,但不对特殊字符编码。file_path和file_type分别代表文件上传的路径和文件类型。
在Postman中运行如图:

此时进入已经搭建好的FastDFS集群中的Storageserver中,可以看到我们通过POST方式上传的文件已经上传成功了。

在浏览器中输入:
storageseverip/group1/M00/00/00/rBAPQV0lXOiAdHNHAABwDWWmycs944.jpg即可看到刚刚通过POST方式上传的文件。

同时也可以实现文件的下载、删除等功能。
实现文件的下载

此时在Postman中执行

进入D盘下的temp文件夹中即可发现该图片已成功下载

实现文件的删除

此时完成了该文件的删除,进入storagesever查看,该文件确实已被删除

JAVA- Jersey使用示例相关推荐

  1. jersey 入门示例_Jersey Web Service Hello World Java示例

    jersey 入门示例 在Restlet之后, Jersey是另一个流行的开源框架,可以用Java创建RESTful Web服务 . Jersey符合JAX-RS规范,实际上它是JAX-RS(JSR ...

  2. java python算法_用Python,Java和C ++示例解释的排序算法

    java python算法 什么是排序算法? (What is a Sorting Algorithm?) Sorting algorithms are a set of instructions t ...

  3. java web程序示例_想要建立一些有趣的东西吗? 这是示例Web应用程序创意的列表。...

    java web程序示例 Interested in learning JavaScript? Get my ebook at jshandbook.com 有兴趣学习JavaScript吗? 在js ...

  4. Java版世界时钟示例

    Java版世界时钟示例 这是一个Java版的世界时钟示例,移植自Gerrit创建的同名Swing应用(http://www.jug-muenster.de/swing-worldclock-427 ) ...

  5. java 函数式编程 示例_功能Java示例 第8部分–更多纯函数

    java 函数式编程 示例 这是第8部分,该系列的最后一部分称为"示例功能Java". 我在本系列的每个部分中开发的示例是某种"提要处理程序",用于处理文档. ...

  6. java 函数式编程 示例_功能Java示例 第1部分–从命令式到声明式

    java 函数式编程 示例 功能编程(FP)的目的是避免重新分配变量,避免可变的数据结构,避免状态并全程支持函数. 如果将功能性技术应用于日常Java代码,我们可以从FP中学到什么? 在这个名为&qu ...

  7. java 静态缓存示例_Java 9 JShell示例:集合静态工厂方法

    java 静态缓存示例 这篇文章继续从My My Java 9 Features博客文章中探索Java9功能. 在这里,我们在List,Set和Map接口中试验Java9 Collections静态工 ...

  8. java 根据类名示例化类_如何使用示例从Java中的类路径加载资源

    java 根据类名示例化类 Java中的类路径不仅用于加载.class文件,而且还可以用于加载资源,例如属性文件,图像,图标,缩略图或任何二进制内容. Java提供了API来将这些资源读取为Input ...

  9. java请求接口示例_Java 8:功能接口示例

    java请求接口示例 为了支持Java 8中的lambda表达式,他们引入了Functional Interfaces. 具有单一抽象方法的接口可以称为功能接口. Runnable,Comparato ...

  10. java 批量处理 示例_Java异常处理教程(包含示例和最佳实践)

    java 批量处理 示例 异常是可能在程序执行期间发生的错误事件,它会破坏其正常流程. Java提供了一种健壮且面向对象的方式来处理异常情况,称为Java异常处理 . 我们将在本教程中研究以下主题. ...

最新文章

  1. js设置div透明度
  2. 精密空调主要部件是干啥用的?
  3. vue源码学习--vue源码学习入门
  4. ip和端口正则表达式
  5. 校验json格式_格式化展示,校验错误,编辑JSON,这几个JSON工具一定不能错过
  6. 计算机指令执行与时序逻辑,时序逻辑系统
  7. 7种常见的数据分析基本思路,满足你职场95%的需求
  8. Python中的operator.itemgetter函数
  9. 主板19针接口_装机新人手册:一分钟学会主板跳线
  10. redis zset转set 反序列化失败_7000字 Redis 超详细总结、笔记!建议收藏
  11. 分区函数Partition By的与row_number()的用法以及与排序rank()的用法详解(获取分组(分区)中前几条记录)...
  12. 中文文本分类:你需要了解的10项关键内容
  13. centos7 安装mysql_第02期:ClickHouse 单机部署以及从 MySQL 增量同步数据
  14. ffmpeg libx264_FFmpeg之FFmpeg模块介绍(一)
  15. 一文说透所有期权基本交易策略
  16. JS插件开发之LightBox图片画廊
  17. LAB3 PartA 用户环境与异常处理
  18. eval()函数用法详解
  19. Dell灵越 5559笔记本安装固态硬盘 BIOS设置
  20. c语言算术运算的作用,C语言算术运算符和算术表达式

热门文章

  1. 【iqiqiya专版】超级网易云音乐V1.0----网易云解析下载工具
  2. 关于DNF的多媒体包NPK文件的那些事儿(7) - IMGV5
  3. 《测绘综合能力》——地籍测绘
  4. 采集企业联系方式的10个经典方法
  5. php 读取js文件,JS中如何读取文件
  6. 31个EMC标准电路分享
  7. picsart旧版本_picsart旧版本中文下载-picsart老版本软件8.5.6 历史版本-东坡下载
  8. linux文件管理器thunar,文件管理器:Nautilus,Thunar,PCManFM,Konqueror,Dolphin,Krusader
  9. 华为手机安装软件出现签名不一致
  10. 2023考研王道计算机408数据结构+操作系统+计算机组成原理+计算机网络