Java的重定向与请求转发

重定向与请求转发的区别:

1、请求转发是服务器行为;重定向是客户端行为。
2、请求转发是RequestDispatcher.forward()方法;重定向使用HttpServletResponse.sendRedirect()方法。
3、请求转发只能将请求转发给同一个web项目中的其他页面;重定向不仅可以重定向到当前项目的其他页面,还可以重定向到另一个站点上的页面。
4、请求转发是一次请求,;重定向是多次请求。 请求转发是同一个请求,由最后一个转发页面向浏览器响应页面; 重定向是前一个请求结束了,一个新的请求发出了。
5、请求转发的转发者与接收转发者之间共享相同的request对象和response对象,他们属于同一个访问请求和响应过程;重定向的调用者与被调用者使用各自的request对象和response对象,他们属于多个独立的访问请求和响应过程;
 6、请求转发URL地址不会变化;重定向地址栏URL会变化。

    1
    2
    3
    4
    5
    6

实现代码:

重定向到index.jsp页面:
response.sendRedirect(request.getContextPath()+"/index.jsp");

将请求转发到index.jsp文件:
request.getRequestDispatcher("/index.jsp").forward(request, response);

    1
    2
    3
    4
    5

举一个例子,理解请求转发和重定向。假设你去办理某个执照:

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

请求转发:
你先去了A地,A地看了以后,知道这个事情其实应该B地来管,但是他没有让你自己去B地,而是让你等
---------------------  
作者:沁子凡  
来源:CSDN  
原文:https://blog.csdn.net/qq_40785225/article/details/82947679  
版权声明:本文为博主原创文章,转载请附上博文链接!

发布了442 篇原创文章 · 获赞 77 · 访问量 100万+

猜你喜欢

转载自blog.csdn.net/rnZuoZuo/article/details/91847580