1. 程式人生 > >使用Servlet實現重定向到另一個Servlet檔案下載服務端下載

使用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.