场景:使用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.