jersey框架是一个开源的RESTful的框架,实现了实现了JAX-RS规范,进一步地简化 RESTful service 和 client 开发。当然而且是必须的,jersey对文件的上传和下载也是支持的。下面我们就讲解怎么基于jersey框架实现文件上传。

首先我们来看看在jersey框架中常见的用来表示接受数据类型和返回数据类型的注解:

@GET 查询请求 相当于数据库的查询数据操作
@POST 插入请求 相当于数据库的插入数据操作
@PUT 更新请求 相当于数据库的更新数据操作
@DELETE 删除请求 相当于数据的删除数据操作
@Path uri路径 定义资源的访问路径,client通过这个路径访问资源。比如:@Path("user")
@Produces 指定返回MIME格式 资源按照那种数据格式返回,可取的值有:MediaType.APPLICATION_XXX。比如:@Produces(MediaType.APPLICATION_XML)
@Consumes 接受指定的MIME格式 只有符合这个参数设置的请求再能访问到这个资源。比如@Consumes("application/x-www-form-urlencoded")
@PathParam uri路径参数 写在方法的参数中,获得请求路径参数。比如:@PathParam("username")  String userName
@QueryParam uri路径请求参数 写在方法的参数中,获得请求路径附带的参数。比如:@QueryParam("desc")  String desc
@HeaderParam 请求头中的参数 写在方法的请求头中,比如:@HeaderParam("userId") String userid
@DefaultValue 设置@QueryParam参数的默认值 如果@QueryParam没有接收到值,就使用默认值。比如:@DefaultValue("description") @QueryParam("desc") String desc
@FormParam form传递的参数 接受form传递过来的参数。比如:@FormParam("name")  String userName
@FormDataParam 通常用在上传文件的时候 客户端提交form(MIME为multipart/form-data)的方式提交表单,服务端使用@FormDataParam来解析form表单中的参数
@BeanParam 通过Bean的形式传递参数 接受client传递的bean类型的参数,同时这个bean可以在属性上配置@FormParam用以解决client的属性名称和bean的属性名称不一致的问题。比如:@BeanParam  User user
@Context 获得一些系统环境信息 通过@Context可以获得以下信息:UriInfo、ServletConfig、ServletContext、HttpServletRequest、HttpServletResponse和HttpHeaders等
@XmlRootElement 将bean转换为xml 如果要将bean以xml或json的格式返回,必须要这个注解。比如:

@XmlRootElement

public class User{...}

如上面的表中所示,通常在文件上传时,我们在服务端将使用@FormDataParam注解来解析上传的文件,而在客户端请求时,需要注意请求头这时不能有Content-Type, 请求体的类型为form-data。

在服务端的一般格式如下:

     @POST
@Path("/uploadEventCsv")
@Consumes({MediaType.MULTIPART_FORM_DATA}) //指定接受类型
@Produces(MediaType.APPLICATION_JSON)。 //返回类型 public WrapResponseModel uploadFile(
@HeaderParam("userId") int userId,
@FormDataParam("file") InputStream fileInputStream,
@FormDataParam("file") FormDataContentDisposition fileMetaData) throws Exception {
//调用相应的service处理
}

注意,在导入FormDataContentDisposition时,应该导入的jar包是:

第一个,切忌不要导错了。。。。

jersey框架实现文件上传的更多相关文章

  1. layUI框架中文件上传前后端交互及遇到的相关问题

    下面我将讲述一下我在使用layUI框架中文件上传所遇到的问题: 前端jsp页面: <div class="layui-form-item"> <label cla ...

  2. 使用SpringMVC框架实现文件上传和下载功能

    使用SpringMVC框架实现文件上传和下载功能 (一)单个文件上传 ①配置文件上传解释器 <!—配置文件上传解释器 --> <mvc:annotation-driven>&l ...

  3. node.js使用express框架进行文件上传

    关于node.js使用express框架进行文件上传,主要来自于最近对Settings-Sync插件做的研究.目前的研究算是取得的比较好的进展.Settings-Sync中通过快捷键上传文件,其实主要 ...

  4. 关于我使用spring mvc框架做文件上传时遇到的问题

    非常感谢作者 原文:https://blog.csdn.net/lingirl/article/details/1714806 昨天尝试着用spring mvc框架做文件上传,犯了挺多不该犯的毛病问题 ...

  5. SpringMVC框架06——文件上传与下载

    1.文件上传 Spring MVC框架的文件上传是基于commons-fileupload组件的文件上传,只不过Spring MVC框架在原有文件上传组件上做了进一步封装,简化了文件上传的代码实现. ...

  6. 笨鸟先飞之Java(一)--使用struts2框架实现文件上传

    无论是.net还是Java,我们最常接触到的就是文件的上传和下载功能,在Java里要实现这两个经常使用功能会有非常多种解决方案,可是struts2的框架却能给我们一个比較简单的方式,以下就一起来看吧: ...

  7. 第三百一十九节,Django框架,文件上传

    第三百一十九节,Django框架,文件上传 1.自定义上传[推荐] 请求对象.FILES.get()获取上传文件的对象上传对象.name获取上传文件名称上传对象.chunks()获取上传数据包,字节码 ...

  8. 巧用 Jersey RESTful WebService框架解决文件上传乱码

    一.当我们使用jersey框架封装的restful进行文件上传时,会出现中文乱码,试用了过滤器设置编码都不管用.仔细想了很久解决办法,就用一个servelt来代替这个上传的restful接口实现上传的 ...

  9. Android(java)学习笔记214:开源框架的文件上传(只能使用Post)

    1.文件上传给服务器,服务器端必然要写代码进行支持,如下: 我们新建一个FileUpload.jsp的动态网页,同时我们上传文件只能使用post方式(不可能将上传数据拼凑在url路径下),上传数据Ap ...

随机推荐

  1. WPF学习之路一

    前段时间一直在学习MVC,工作需要,现在需要180度急转弯,搞WPF,MVVM,只能找资料学习了. WPF中有一个消息机制,就是当前台控件绑定的值改变时,会自动通知到指定的事件来改变VM的值,反之亦然 ...

  2. salesforce零基础学习(八十三)analytics:reportChart实现Dashboard(仪表盘)功能效果

    项目中经常会用到Report以及Dashboard来分析汇总数据,Dashboard可以指定view as user,如果针对不同的用户需要显示其允许查看的数据,比如  根据role hierarch ...

  3. 基础教程:ASP.NET Core 2.0 MVC筛选器

    问题 如何在ASP.NET Core的MVC请求管道之前和之后运行代码. 解 在一个空的项目中,更新 Startup 类以添加MVC的服务和中间件. publicvoid ConfigureServi ...

  4. Weblogic之简介

    一.简介(来自百度百科)   WebLogic是美国Oracle公司出品的一个application server,确切的说是一个基于JAVAEE架构的中间件,WebLogic是用于开发.集成.部署和 ...

  5. linux 安装nginx 详解

    1 nginx安装环境 nginx是C语言开发,建议在linux上运行,本教程使用Centos6.5作为安装环境. n gcc 安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没 ...

  6. Java 执行CMD/DOS

    最近在写一个自己的邮箱服务器里用到 监视及起/停 windows 中的服务,调查发现还是得用dos来做这些事情 说一下遭遇战的过程 首先是java里如何执行DOS命令,查到下记函数 Runtime.g ...

  7. 十三、Hadoop学习笔记————Hive安装先决条件以及部署

    内嵌模式,存储于本地的Derby数据库中,只支持单用户 本地模式,支持多用户多会话,例如存入mysql 下载解压hive后,进到conf路径,将模板拷贝 出现该错误表示权限不够 该目录未找到 新建一个 ...

  8. input type="radio" 赋值问题

    之前项目中 后台传值 然后赋给单选input   在网上找了好久,现在有时间了,整理一下  ,方便以后有人会用到. $('radio[name="sex"][value'" ...

  9. 关于 use-default-filters 属性的说明

    原创播客,如需转载请注明出处.原文地址:http://www.cnblogs.com/crawl/p/7940755.html ------------------------------------ ...

  10. 重要:关于PPT转图片需要注意的问题

    关于PPT转图片的问题需要注意的问题   我们有一个项目做过直接上传ppt的功能,但是网页不可能显示ppt,所以只能把ppt转成pdf或者图片来显示,我们的做法是转成了图片,然后使用swiper做成类 ...