重定向与转发

重定向:

  重定向是利用HttpServletResponse这个接口提供的sendRedirect(path)方法,在Servlet中进行资源的重新访问,先把地址发送到客户端,然后客户端利用返回的地址,重新发送请求访问。在这个过程中,请求发生了改变,所以地址栏的url发生了改变,在重定向的过程中,request作用域失效。上一个请求的参数,无法再下一个请求中拿到。重定向是发生了两次请求。

转发:

  转发是利用HttpServletRequest接口提供的getRequestDispatcher(path)方法,返回一个RequestDispatcher对象,然后利用这个对象的forword方法或include方法进行资源转向访问或包含资源,在这个过程中,都是在服务器内部进行,请求没有发生改变,所以浏览器地址栏的url也没有发生改变,request作用域是可以使用,所以请求的参数能够拿到。转发是资源转向访问了,但是请求并没有发生改变。

原文地址:https://www.cnblogs.com/ningJJ/p/4723550.html