在J2EE开发中,请求转发与请求重定向是最基本的概念之一,下文主要详细分析其区别:
一.实现
(1)请求转发:
- 首先调用类HttpServletRequest的getRequestDispather(String url)方法,获取RequestDispather对象;
- 调用RequestDispather类的forward(request,response)方法,进行请求重定向操作。
(2)请求重定向:
- 调用HttpServletResponse的sendRedirect(String url)方法,进行请求重定向操作。
二.区别
(1) 本质区别: 请求转发只发送一次请求(相当于把请求内容放入自己的页面),请求重定向则发送了两次请求。
(2) 具体:
1.请求转发地址栏是初次发出的地址;请求重定向是最后一次相应的地址
2.请求转发在最终的servlet中,request对象和中转request对象是同一个对象;而请求重定向中request不是同一个。
没有请求转发J2EE的整体架构局出不来。
(3) 请求转发给当前WEB资源,请求重定向可以重定向到任意资源
(4) 请求转发:‘/’代表当前应用的根目录。请求重定向:‘/’代码当前站点