转发与重定向的区别:
1.转发的URl的地址不会发生变化,重定向的地址会发生变化
2.转发的request的内置对象是可以使用的,而重定向的request内置对象不可以使用
3.转发的跳转速度比重定向的速度快
4.转发是request的请求,重定向是response的请求,也就是说转发是客户端响应,重定向是服务器响应。
5.重定向:以前的request中存放的变量全部失效,并进入一个新的request作用域。 转发:以前的request中存放的变量不会失效,就像把两个页面拼到了一起。
转发的特点:
- 地址栏不发生变化
- 只有一次请求
- 请求中不会丢失数据
- 访问地址:http://localhost:8080/testx/
用法:
request.getRequestDispatcher(uri).forward(req,resp);
重定向的特点:
- 显示新的地址
- 请求次数两次
- 请求中的数据会丢失,因为有两次请求
- 根地址:http://localhost:8080/
用法:
response.sendRedirect(url);