forward:
请求转发时,浏览器执行了一个请求,至于转发是在服务器内部执行的,浏览器并不知道服务器发生了什么,只知道自己获得了一个响应发回来了,其浏览器的地址并不因为请求转发改变地址。
redirect:
请求跳转时,浏览器发送一个请求,服务器返回给浏览器一个重定向的响应,响应中包含新地址,然后浏览器根据新地址重新向服务器发送一个请求,其浏览器的地址发生改变。
forward()和sendRedirect()的区别:
区别 forward() sendRedirect()
1、是否能读取转向前request对象通过
setAttribute()方法设定的属性值。 是 否
2、转向后地址栏显示的地址。 转向前的地址不变 所转向到的Servlet/JSP页面地址
3、是否可以转向到本地Web应用之外 否 是
的页面或者网站。
4、转向的速度。 相对要快 相对要慢