解密:Jersey 入门指南系列1
jersey 深度揭秘,入门指南教程 系列1
jersey 是基于Java的一个轻量级RESTful风格的Web Services框架。
参考官网: https://jersey.java.net/
Maven项目使用原则如下:在pom.xml中加入:
<!-- Jersey -->
<dependency>
<groupId>org.glassfish.jersey.core</groupId><artifactId>jersey-client</artifactId><version>${jersey.version}</version>
</dependency>
<dependency><groupId>org.glassfish.jersey.containers</groupId><artifactId>jersey-container-servlet</artifactId><version>${jersey.version}</version>
</dependency>
<dependency><groupId>org.glassfish.jersey.media</groupId><artifactId>jersey-media-moxy</artifactId><version>${jersey.version}</version>
</dependency>
<dependency><groupId>org.glassfish.jersey.media</groupId><artifactId>jersey-media-multipart</artifactId><version>${jersey.version}</version>
</dependency>
当然必不可少的,也需要使用Java EE的支持:
<!-- JAVA EE -->
<dependency><groupId>javax</groupId><artifactId>javaee-api</artifactId><version>7.0</version><scope>provided</scope>
</dependency>
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 savereturn 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) {// TODOreturn ;}
文件下载
文件下载需要将Response对象的压缩方式,指定为:
@Produces(MediaType.APPLICATION_OCTET_STREAM)
解密:Jersey 入门指南系列1相关推荐
- 51单片机入门指南系列:一、前期准备
51单片机入门指南系列:一.前期准备 51单片机学习步骤 为什么我用的是52单片机,大家也说它是51? 编译环境 单片机入门书籍 购买实物开发板 51单片机学习步骤 51单片机是嵌入式学习的入门级芯片 ...
- 电子乐入门指南系列1
如 果 听电音也算是电击疗法之一,那么相信这世界有无数人愿意选择头戴耳机安乐而死.贝尔发明电话的时候绝对不会想到,在他以后的一百多年历史中,电波可以通过 这样的方式传送,可以带出这样的效果,让人群闻之 ...
- Unity3D Shader入门指南(二)
关于本系列 这是Unity3D Shader入门指南系列的第二篇,本系列面向的对象是新接触Shader开发的Unity3D使用者,因为我本身自己也是Shader初学者,因此可能会存在错误或者疏漏,如果 ...
- 猫都能学会的Unity3D Shader入门指南(二)
关于本系列 这是Unity3D Shader入门指南系列的第二篇,本系列面向的对象是新接触Shader开发的Unity3D使用者,因为我本身自己也是Shader初学者,因此可能会存在错误或者疏漏,如果 ...
- java 视频转码工具类_JavaCV入门指南:FrameConverter转换工具类及CanvasFrame图像预览工具类(javaCV教程完结篇)...
JavaCV入门指南:FrameConverter转换工具类及CanvasFrame图像预览工具类(javaCV教程完结篇) 前言 再此章之前,我们已经详细介绍和剖析了javacv的结构和ffmpeg ...
- javaCV入门指南:序章
javaCV入门指南系列: JavaCV入门指南:序章(看完本章后,不想看原理的小伙伴可直接跳转到<快速上手篇>) JavaCV入门指南:调用FFmpeg原生API和JavaCV是如何封装 ...
- JavaCV入门指南:调用opencv原生API和JavaCV是如何封装了opencv的图像处理操作?
JavaCV入门指南系列: JavaCV入门指南:序章(看完本章后,不想看原理的小伙伴可直接跳转到<快速上手篇>) JavaCV入门指南:调用FFmpeg原生API和JavaCV是如何封装 ...
- javaCV入门指南:调用FFmpeg原生API和JavaCV是如何封装了FFmpeg的音视频操作?
JavaCV入门指南系列: JavaCV入门指南:序章(看完本章后,不想看原理的小伙伴可直接跳转到<快速上手篇>) JavaCV入门指南:调用FFmpeg原生API和JavaCV是如何封装 ...
- NAO机器人入门指南(二):在Choregraphe使用Python
在NAO机器人入门指南(一)中,我们安装并熟悉了choregraphe的基本界面,这次则介绍如何在在Choregraphe使用Python. 一.连接 二.创建指令盒 右键双击中间区域,创建pytho ...
最新文章
- 2017年实时更新系统hosts文件(不能访问时才会更新)不要用于非法行为 只供内部测试...
- shadow dom一个最简单的例子
- 转: javascript技术栈
- 【C/C++开发】C语言实现函数可变参数
- 分布式锁防止订单重复提交_防止表单重复提交看这里!!!
- 移动端手机火狐浏览器全屏插件
- 09_期望极大法EM1_统计学习方法
- 人要抱着希望才能活得好
- java内存模型—先行发生原则
- ActionForm工作原理
- LCD液晶拼接屏优势凸显受市场欢迎
- 计算机之父童年的故事教学设计,计算机之父童年的故事 教学设计
- MapReduce 的基本原理
- 今天是教师节,我也即将成为一名老师
- 服务器可以装win7或win10系统吗,win10改win7用legacy还是uefi?_网站服务器运行维护,window...
- 震惊,用过微粒贷的人没资格贷款买房!
- 3.css3深入,高级选择器浮动布局,html5/css3基础开始(推荐收藏)
- linux输入ll命令各个字段的含义
- 百度地图-设置地图最小、最大级别
- C++入门>>初识类