requestDispatcher-forward()方法
当我们使用该
forward方法时,请求将被转移到同一服务器内的另一个资源以进行进一步处理。在的情况下
forward,Web容器在内部处理所有处理,并且不涉及客户端或浏览器。3.
在对象forward上调用when时requestDispatcher,我们传递了请求和响应对象,因此旧的请求对象存在于将处理请求的新资源上。
从视觉上看,我们看不到转发的地址,它是透明的。
使用该
forward()方法比sendRedirect。6.
当我们使用正向重定向时,并且我们想在新资源中使用相同的数据时,我们可以使用,request.setAttribute()因为我们有一个可用的请求对象。发送重定向
在的情况下
sendRedirect,请求将转移到另一个资源,另一个域或另一个服务器以进行进一步处理。当您使用时
sendRedirect,容器会将请求传输到客户端或浏览器,因此,在sendRedirect方法内部给出的URL
作为对客户端的新请求可见。如果发生
sendRedirect呼叫,则旧的请求和响应对象将丢失,因为浏览器将其视为新请求。在地址栏中,我们可以看到新的重定向地址。这不是透明的。
sendRedirect速度较慢,因为需要一个额外的往返行程,因为创建了一个全新的请求,而旧的请求对象丢失了。需要两个浏览器请求。但是在中
sendRedirect,如果我们要对新资源使用相同的数据,则必须将数据存储在会话中或与URL一起传递。哪个好?
它取决于哪种方法更有用的方案。
如果您希望将控制权转移到新服务器或上下文中,并且将其视为全新任务,那么我们去寻求
sendRedirect。通常,如果可以在重新加载浏览器后安全地重复该操作并且不会影响结果,则应使用转发。
资源



