Jersey2xjersey-media-multipart+Jetty实现文件上传下载

本文介绍了将Jersey1.19升级到2.0版本,并使用jersey-media-multipart实现文件上传下载功能。主要变更包括资源文件检测的包和ServletContainer的切换。提供了AbstractFileDownloadAction、AbstractFileUploadAction、UploadRestService的示例代码,以及Jetty启动类JerseyServerStarter的修改。源码可在提供的百度网盘链接中获取。
摘要由CSDN通过智能技术生成

前一段时间写了Jersey+Jetty搭建后台框架,使用的是Jersey1.19版本,写上传下载文件时引入jersey-media-multipart依赖是2.0版本的,索性把整个框架都升级到2.0版本了。

jersey1x和2x的区别我就不详细说了,只提供修改点。

主要是资源文件检测的包改变了,还有ServletContainer从1x是com.sun.jersey.spi.container.servlet.ServletContainer切换为2x的org.glassfish.jersey.servlet.ServletContainer。

1x的Jersey依赖是:

<dependency>
			<groupId>com.sun.jersey</groupId>
			<artifactId>jersey-servlet</artifactId>
			<version>1.19</version>
		</dependency>
2x的依赖是:

<dependency>
			<groupId>org.glassfish.jersey.containers</groupId>
			<artifactId>jersey-container-servlet-core</artifactId>
			<version>2.0</version>
		</dependency>


先截图看下整体文件的分布情况,跟之前搭建的Jersey框架大体上是差不多的:



依赖增加

<dependency>
			<groupId>org.glassfish.jersey.media</groupId>
			<artifactId>jersey-media-multipart</artifactId>
			<version>2.0</version>
		</dependency>
		<dependency>
			<groupId>commons-io</groupId>
			<artifactId>commons-io</artifactId>
			<version>2.4</version>
		</dependency>


框架中增加了AbstractFileDownloadAction下载文件Action抽象类和AbstractFileUploadAction上传文件Action抽象类,屏蔽掉文件处理过程。

AbstractFileDownloadAction:

/**
 * 2017年4月29日 黑苹果
 */
package com.black.apple.framework.jersey.rest.action.common;

import java.io.File;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;

import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;

import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.black.apple.framework.exception.FrameworkErrorCode;
import com.black.apple.framework.exception.FrameworkException;
import com.black.apple.framework.jersey.utils.JsonDecodeUtil;

/**
 * @author 黑苹果 2017年4月29日
 */
public abstract class AbstractFileDownloadAction
{
    private static final Logger LOGGER = LoggerFactory.getLogger(AbstractFileDownloadAction.class);

    /**
     * Action主方法
     * 
     * @param request
     *            request
     * @return Response
     */
    public Response exe
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值