1、什么是请求转发和重定向?
-
请求转发:
request.getRequestDispatcher(String path).forward(request,response);
-
重定向
response.sendRedirect(String path);
简单来说,请求转发是服务端内部做的事情,和客户端无关,客户端也无感知;而重定向是客户端请求服务端,服务端重定向,客户端在发起二次请求才能拿到结果。
2、请求转发和重定向的区别
- 1、重定向是response发起,请求转发是request发起;
- 2、重定向客户端会发起两次请求,请求转发只有一次请求;
- 3、重定向会改变浏览器地址栏的地址,请求转发是服务器内部跳转,不会改变浏览器地址;
- 4、重定向可以在站内跳转和可以跳转到站外,请求转发只能站内跳转;
- 5、重定向不存在request域,请求转发存在request域;