博客
关于我
jersey框架实现文件上传
阅读量:437 次
发布时间:2019-03-06

本文共 2070 字,大约阅读时间需要 6 分钟。

    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。

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

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

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

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

转载地址:http://rsbyz.baihongyu.com/

你可能感兴趣的文章
Node-RED中实现HTML表单提交和获取提交的内容
查看>>
Vue3+elementplus实现图片上传下载(最强实践)
查看>>
Node-RED中将CSV数据写入txt文件并从文件中读取解析数据
查看>>
Node-RED中建立TCP服务端和客户端
查看>>
Node-RED中建立Websocket客户端连接
查看>>
Node-RED中建立静态网页和动态网页内容
查看>>
Vue3+Element-ul学生管理系统(第二十二课)
查看>>
Node-RED中怎样让网站返回JSON数据
查看>>
Node-RED中根据HTML文件建立Web网站
查看>>
Node-RED中解析高德地图天气api的json数据显示天气仪表盘
查看>>
Node-RED中连接Mysql数据库并实现增删改查的操作
查看>>
Node-RED中通过node-red-ui-webcam节点实现访问摄像头并截取照片预览
查看>>
Node-RED中配置周期性执行、指定时间阶段执行、指定时间执行事件
查看>>
Node-RED安装图形化节点dashboard实现订阅mqtt主题并在仪表盘中显示温度
查看>>
Node-RED怎样导出导入流程为json文件
查看>>
Node-RED简介与Windows上安装、启动和运行示例
查看>>
Node-RED订阅MQTT主题并调试数据
查看>>