java转发和重定向

在java中转发和重定向的区别

首先,当我们在使用转发时,JSP容器将使用一个内部的方法来调用目标页面,新的页面继续处理同一个请求,而浏览器将不会知道这个过程,只能将请求转发给同一个WEB应用中的组件。
内部转发
Request.getRequestDispatcher(path).forward(request,response);

与之相反,重定向方式的含义是第一个页面通知浏览器发送一个新的页面请求。因为,当你使用重定向时,浏览器中所显示的URL会变成新页面的URL, 而当使用转发时,该URL会保持不变。重定向的速度比转发慢,因为浏览器还得发出一个新的请求。同时,由于重定向方式产生了一个新的请求,所以经过一次重 定向后,request内的对象将无法使用。
重定向
Response.sendRedirect(location); 对浏览器的请求直接作出响应,响应的结果就是告诉浏览器去重新发出对另外一个URL的 访问请求
转发还是重定向
1、如果两个都可以使用,而无影响的话建议使用转发,因为重定向还要向服务器再次发送请求,速度比较慢

2 这要取决于是不是在当前web应用程序,转发只能访问当前WEB的应用程序,所以不同WEB应用程序之间的访问,特别是要访问到另外一个WEB站点上的资源的情况,这个时候就只能使用重定向了。

在返回值时重定向到一个地址

这里写图片描述

猜你喜欢

转载自blog.csdn.net/GORS5063/article/details/82633343