response下載文件
package com.yl.servlet;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.URLEncoder;
public class FileServlet extends HttpServlet {
請求轉發:
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
ServletContext context = this.getServletContext();
//RequestDispatcher rd = context.getRequestDispatcher("/gp");//轉發的請求路徑,但頁面路徑不變,區別於重定向
//rd.forward(req,resp);//實現請求轉發
context.getRequestDispatcher("/gp").forward(req,resp);
}
重定向:
resp.sendRedirect(req.getContextPath()+"/gp");//重定向,注意觀察路徑寫法的區別
/*等價於
resp.setHeader("location",req.getContextPath()+"/gp");
resp.setStatus(302);
*/
重定向和轉發的區別:
相同點:頁面都會跳轉
不同點:請求轉發的時候url不會發生變化,重定向url地址欄會發生變化。請求轉發的編碼:307,重定向編碼:302