在servlet中调用转发、重定向的语句如下:

request.getRequestDispatcher(\公众new.jsp\"大众).forward(request, response);//转发到new.jsp

response.sendRedirect(\公众new.jsp\"大众);//重定向到new.jsp

jspforwardpage重定向和要求转发的差别简略通俗 React

在jsp页面中你也会看到通过下面的办法实现转发:

<jsp:forward page=\"大众apage.jsp\"大众 />

当然也可以在jsp页面中实现重定向:

<%response.sendRedirect(\"大众new.jsp\"大众);//重定向到new.jsp%>

二、差异

1.要求转发是做事器行为,重定向是客户端行为。
下面看两个动作的事情流程:

转发过程:客户浏览器发送http要求 → web做事器接管此要求 → 调用内部的个方法在容器内部完成要求处理和转发动作 → 将目标资源发送给客户;在这里,转发的路径必须是同一个web容器下的url,其不能转向到其他的web路径上去,中间通报的是自己的容器内的request。
在客户浏览器路径栏显示的仍旧是其第一次访问的路径,也便是说客户是觉得不到做事器做了转发的,转发行为是浏览器只做了一次访问要求。

重定向过程:客户浏览器发送http要求 → web做事器接管后发送302状态码相应及对应新的location给客户浏览器→客户浏览器创造是302相应,则自动再发送一个新的http要求,要求url是新的location地址→做事器根据此要求探求资源并发送给客户。
在这里location可以重定向到任意URL,既然是浏览看重新发出了要求,则就没有什么request通报的观点了。
在客户浏览器路径栏显示的是其重定向的路径,客户可以不雅观察到地址的变革的,重定向行为是浏览器做了至少两次的访问要求的。

2.重定向,实在是两次request, 第一次,客户端request A,做事器相应,并response回来,见告浏览器,你该当去B。
这个时候浏览器看到地址变了,而且历史的回退按钮也亮了。
重定向可以访问自己web运用以外的资源。
在重定向的过程中,传输的信息会被丢失。

要求转发是做事器内部把对一个request/response的处理权,移交给其余一个 对付客户端而言,它只知道自己最早要求的那个A,而不知道中间的B,乃至C、D。
传输的信息不会丢失。

普通的例子:

假设你去办理某个执照,

重定向:你先去了A局,A局的人说:“这个事情不归我们管,去B局”,然后,你就从A退了出来,自己乘车去了B局。

转发:你先去了A局,A局看了往后,知道这个事情实在该当B局来管,但是他没有把你退回来,而是让你坐一下子,自己到后面办公室联系了B局的人,让他们办好后,送了过来。