请求转发和重定向的区别

请求转发 :即request.getRequestDispatcher().forward(),是一种服务器的行为,客户端只有一次请求,服务器端转发后会将请求对象保存,地址栏中的URL地址不会改变,得到响应后服务器端再将响应发给客户端;

请求重定向:即response.sendRedirect(),是一种客户端行文,从本质上讲等同于两次请求,前一次请求对象不会保存,地址栏的URL地址会改变。

举个例子

转发:A需要办护照,拿着证明材料去X部门,X部门说这个不归他们管,让A等着,然后X将材料交给Y部门,Y部门办好后将护照交给了X,X最后将护照交给了A。

重定向:A需要办护照,拿着证明材料去X部门,X部门说这个不归他们管,让A找Y部门,然后A就去找Y部门,Y部门办好后交给了A。

简单理解,例子中的“证明材料”相当于request,“护照”相当于response

原文地址:https://www.cnblogs.com/ouym/p/7346849.html