jersey 是基于Java的一个轻量级RESTful风格的Web Services框架。

引入

使用maven,在pom.xml中加入:

org.glassfish.jersey.core

jersey-client

${jersey.version}

org.glassfish.jersey.containers

jersey-container-servlet

${jersey.version}

org.glassfish.jersey.media

jersey-media-moxy

${jersey.version}

org.glassfish.jersey.media

jersey-media-multipart

${jersey.version}

当然必不可少的,也需要使用Java EE的支持:

javax

javaee-api

7.0

provided

Jar包详解:

jersey-client 是jersey提供的客户端包,封装了一些客户端操作的类

jersey-container-servlet 是jersey的核心,服务端必备包

jersey-media-moxy 是定义了jersry支持的常用的数据格式,json,xml都包括其中

jersey-media-multipart 是jersey的上传文件的支持

配置

jersey 的使用,必须要有一个全局的配置类,这个类需满足以下条件:

@ApplicationPath 注解该类,并且在参数中指定相对路径

继承 org.glassfish.jersey.server.ResourceConfig 类

该类构造方法中设置jersey的配置,比如指定接口的包路径

如下:

@ApplicationPath("/")

public class RESTServiceConfig extends ResourceConfig {

public RESTServiceConfig() {

packages("web.rest");

register(MultiPartFeature.class);

}

}

GET

GET例子:

@GET

@Path("/thing")

public String get() {

return "thing";

}

POST

POST例子:

@POST

@Path("/add")

public Boolean add(@FormParam("name") String name) {

// TODO save

return true;

}

Param

jersey中有几种常用的接收参数的注解:

@PathParam 接收链接中参数,如"/xxx/{name}/",@PathParm("name")

@QueryParam 接收链接中的普通参数,如"/xxx?name=ttt",@QueryParam("name")

@FormParm 接收post提交中的表单参数

@FormDataParm 上传文件接收文件参数

json

开发中,json已经常用到无处不在了,jersey对json的支持很好。接收json,需要使用@Consumes,注解指定解压方式:

@Consumes(MediaType.APPLICATION_JSON)

返回json需要使用@Produces注解,指定压缩方式:

@Produces(MediaType.APPLICATION_JSON)

文件上传

示例:

@POST

@Path("import-excel")

@Consumes(MediaType.MULTIPART_FORM_DATA)

@Produces(MediaType.APPLICATION_JSON)

public ImportResultBean importForExcel(@FormDataParam("file") String fileString,

@FormDataParam("file") InputStream fis,

@FormDataParam("file") FormDataContentDisposition fileDisposition) {

// TODO

return ;

}

文件下载

文件下载需要将Response对象的压缩方式,指定为:

@Produces(MediaType.APPLICATION_OCTET_STREAM)

java jersey使用总结_jersey使用指南相关推荐

  1. 《阿里巴巴Java开发规约》插件使用详细指南

    阿里巴巴于10月14日在杭州云栖大会上,正式发布众所期待的<阿里巴巴Java开发规约>扫描插件.今天,阿里妹为大家详细介绍一下IDEA插件与Eclipse插件的安装使用. 插件下载地址 h ...

  2. 使用Eclipse在Amazon Ec2中部署Java Web应用程序的完整指南

    嗨,读者们, 今天,我将向您展示如何使用Eclipse IDE在Amazon EC2中部署简单的Java Web应用程序. 在我们开始之前,我们需要一些必需的东西, Eclipse Java EE I ...

  3. Java支付宝身份验证接口接入指南(人脸验证)

    Java支付宝身份验证接口接入指南 最近公司项目有人脸身份核验的需求,首先就想到了支付宝的身份验证接口,于是就需要看支付宝的开放api文档,这里就有些坑,然后就本次接入遇到的坑,做个整理.(基于web ...

  4. Java Jersey使用总结

    前言 在短信平台一期工作中,为便于移动平台的开发,使用了Java Jersey框架开发RESTFul风格的Web Service接口.在使用的过程中发现了一些问题并积累了一些经验.因此,做下总结备忘, ...

  5. Java使用FFmpeg处理视频文件指南

    https://www.cnblogs.com/Dreamer-1/p/10394011.html Java使用FFmpeg处理视频文件指南 本文主要讲述如何使用Java + FFmpeg实现对视频文 ...

  6. oracle ocp认证_OCP Oracle认证专业Java SE 8程序员学习指南II-复习和作者对话

    oracle ocp认证 在招聘技术职位时,传统观点认为,没有什么能比有经验的候选人更胜一筹了,而且许多招聘经理通常可能不会在认证方面投入太多. 但是,Oracle Java认证考试当然是一个例外,因 ...

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

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

  8. Java内存溢出(OOM)异常完全指南

    原文:http://luecsc.blog.51cto.com/2219432/1948800 这也许是目前最为完整的Java OOM异常的解决指南. 1.Java.lang.OutOfMemoryE ...

  9. java 迁移数据_Java 9迁移指南:七个最常见的挑战

    java 迁移数据 我敢肯定,您已经听说过更新到Java 9并不是一件容易的事,甚至可能是不兼容的更新,而且对于大型代码库而言,迁移毫无意义. 这样做之后,我迁移了一个相当大的旧代码库,我可以告诉你, ...

最新文章

  1. 2022-2028年中国钢铁智能制造产业竞争现状及发展趋势分析报告
  2. 数据库期末复习之并发控制
  3. boost::equal_range相关的测试程序
  4. android WebView的简单使用
  5. html怎样添加css样式,html添加css样式的方法
  6. python 循环指定次数_亮仔的Python之路Day7——Python循环语句
  7. JavaSE----变量、String、运算符、流程控制
  8. c#实现linux中gzip压缩解压缩算法:byte[]字节数组,文件,字符串,数据流的压缩解压缩
  9. c 语言基础笔试题1
  10. 机器学习笔记——生成式对抗网络GAN
  11. office2013卸载工具
  12. 端口扫描神器——nmap
  13. 移动APP测试经验总结
  14. 基于jsp的消防知识宣传网站ssh框架
  15. 算法题:岛屿最大面积
  16. python中label函数_python实现在函数图像上添加文字和标注的方法
  17. 哪个软件可以测试脸型适合什么发型,万能脸型公式,4个问题测出你的脸型和适合的发型!...
  18. echarts tree默认展开_Echarts树形图展开和收缩
  19. XML,HTTP协议
  20. Part 13 (1) Fourier级数基本概念与应用

热门文章

  1. 何凯明团队又出新论文!北大、上交校友教你用ViT做迁移学习
  2. MATLAB 只是冰山一角!一个海外资深程序员聊被卡脖子……
  3. 推荐一位玩自动化的 Python 爱好者
  4. 10个省时间的 PyCharm 技巧
  5. 在厕所遇到领导到底该说些什么?
  6. 女面试官:我拉链开了你怎么提醒我?
  7. 面试官问:请拿出一段体现你水平的代码,我该如何回答?
  8. Redis源码分析:过期key删除与设置key的过期时间
  9. python模块学习---mechanize(模拟浏览器)
  10. C语言里的逗号!_只愿与一人十指紧扣_新浪博客