使用Servlet實現重定向到另一個Servlet檔案下載服務端下載
阿新 • • 發佈:2019-01-02
場景:使用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.