forward请求转发和redirect重定向的区别图解整理
一、区别图解
1、 forward (请求转发) :
request.getRequestDispatcher("/xx.jsp").forward(request, response);
2、redirect (重定向) :
response.sendRedirect(request.getContextPath()+"/xx.jsp");
二、区别整理
区别 | forward() | sendRedirect() |
request对象setAttribute();的值是否 会丢失 | 不会 | 会 |
地址栏是否变化 | 否 (和请求Servlet 地址一致) | 是 (显示转向后的地址) |
是否可转向本web应用之外的页面 或网站 | 否 | 是 |
转向速度 | 快 | 慢 |
三、总结
1、由一图解可知, forward 请求转发是服务端行为,由一个Servlet转发给另一个Servlet。
2、 redirect 重定向是客户端行为,服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL.
参考资料: https://www.cnblogs.com/Qian123/p/5345527.html