学了俩三天的servlet的内部转发和重定向,今天利用一点时间将servlet的内部转发和从新向进行一个大概总结,因为本人也是初学阶段,若有不对,望谅解!并但愿私信我及早改正,但愿能帮到你们。浏览器
首先,先将两者的语法背一下,无论会不会用,先记下语法是没错滴!!!
转发:服务器
httpServletRequest.getRequestDispatcher("资源路径").forward(httpServletRequest, httpServletResponse);
重定向:ide
httpServletResponse.sendRedirect("/资源路径");
目的:
两者都是用来实现页面跳转,给客户端一个响应。spa
区别:
虽然两者都是用来实现页面跳转,给客户端一个响应。可是其中仍是有很大的差异的,这里就和你们一块儿探讨下两者原理及不一样。code
1.请求原理图以下所示:
2.能够简单理解转发就比如一我的去向A这我的借钱,可是A没有钱,因此A又跑去找B这我的借钱,而后把借来的钱再借给你了。blog
1.请求原理图以下所示:
2.能够简单理解重定向就比如一我的去向A这我的借钱,可是A没有钱,这时候A告诉你B有钱,而后你本身去跑B家去找B借钱资源
转发 | 重定向 |
---|---|
转发是服务器行为(这是不通过浏览器的) | 重定向是客户端行为。(浏览器从新请求)。 |
转发是浏览器只作了一次访问请求 | )重定向是浏览器作了至少两次的访问请求的(固然也能够重定向屡次)。 |
转发浏览器地址不变 | 定向浏览器地址改变。 |
转发两次跳转之间传输的信息不会丢失,因此能够经过request进行数据的传递 | 重定向两次跳转之间传输的信息会丢失(request范围) |
转发只能将请求转发给同一个WEB应用中的组件 | 重定向能够指向任何的资源,包括当前应用程序中的其余资源,同一个站点上的其余应用程序中的资源,其余站点的资源 |