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