使用Servlet实现重定向到另一个Servlet文件下载服务端下载

场景:使用Servlet实现重定向到另一个Servlet文件下载服务端下载,重定向的Servlet只做验证处理功能,
       而实际下载功能是内部服务。
1.创建一个spring的web项目,确保可正常运行。
2.实现一个Servlet文件下载服务端
  可参考: 使用Servlet实现文件下载服务端
3.实现一个重定向Servlet
  本例是DownloadRedirectServlet类,继承HttpServlet类

public class DownloadRedirectServlet extends HttpServlet{
	
	private static final long serialVersionUID = -1984292554164116150L;
	private static final Logger logger = LoggerFactory.getLogger(DownloadRedirectServlet.class);
	
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		
		logger.info("进入DownloadRedirectServlet,转发前......");
		/**1.从请求中获取下载名称*/
		String fileName = request.getParameter("filename");
		fileName=new String(fileName.getBytes("ISO8859-1"),"UTF-8");
		/**2.重组url*/
		String redirectUrl ="http://127.0.0.1:8080/study/download?filename=#";
		redirectUrl = redirectUrl.replace("#", fileName);
		/**3.转发到实际下载服务*/
		try {
			response.sendRedirect(redirectUrl);
		} catch (IOException e) {

			e.printStackTrace();
		}
		logger.info("退出DownloadRedirectServlet,转发到实际下载服务......");
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doGet(request,response);
	}
}

4.在浏览器中访问URL:  http://127.0.0.1:8080/study/downloadRedirect?filename=8195B04F2E924C2E9596AC79488351EF.zip

5.日志截图

以上,TKS.

猜你喜欢

转载自blog.csdn.net/zhangbeizhen18/article/details/85535867
今日推荐