相同点:
请求转发forward和重定向redirect都是页面跳转的方式,都会将转发/重定向的地址相应到浏览器。
区别:
- 转发是一次请求(也可以说是两次,第一次是浏览器发送,第二次发生在服务器内部),重定向是两次请求(第一次是访问servlet,第二次访问重定向的地址)。
- 转发时地址栏显示的是第一次请求时的地址,重定向时地址栏最终显示的是重定向的地址。
- 转发可以获得请求域request中的数据,重定向不可以(两次请求,两个请求域request对象)。
- 转发可以访问WEB-INF中的资源,重定向不可以。(WEB-INF中的资源具有安全性,只能通过服务器内部访问)
- 转发不能跨域,重定向可以。(转发只能访问服务器内部资源)