Java的重定向与请求转发
程序员文章站
2022-04-16 22:41:13
...
重定向与请求转发的区别:
1、请求转发是服务器行为;重定向是客户端行为。
2、请求转发是RequestDispatcher.forward()方法;重定向使用HttpServletResponse.sendRedirect()方法。
3、请求转发只能将请求转发给同一个web项目中的其他页面;重定向不仅可以重定向到当前项目的其他页面,还可以重定向到另一个站点上的页面。
4、请求转发是一次请求,;重定向是多次请求。 请求转发是同一个请求,由最后一个转发页面向浏览器响应页面; 重定向是前一个请求结束了,一个新的请求发出了。
5、请求转发的转发者与接收转发者之间共享相同的request对象和response对象,他们属于同一个访问请求和响应过程;重定向的调用者与被调用者使用各自的request对象和response对象,他们属于多个独立的访问请求和响应过程;
6、请求转发URL地址不会变化;重定向地址栏URL会变化。
实现代码:
重定向到index.jsp页面:
response.sendRedirect(request.getContextPath()+"/index.jsp");
将请求转发到index.jsp文件:
request.getRequestDispatcher("/index.jsp").forward(request, response);
举一个例子,理解请求转发和重定向。假设你去办理某个执照:
重定向:
你先去了A地,A地的人说:“这个事情不归我们管,去B地”,然后,就从A退了出来,自己乘车去了B地。
请求转发:
你先去了A地,A地看了以后,知道这个事情其实应该B地来管,但是他没有让你自己去B地,而是让你等一会儿,他到后面办公室联系了B地的人,让他们办好后,给你送了过来。
上一篇: 内存溢出与泄漏