请求转发:
request.getRequestDispatcher(“/main.html”).forward(request, response);
请求转发是服务器内部跳转,地址栏不会变。
重定向:
response.sendRedirect(request.getContextPath() + “/main.html”);
重定向则是用response对象的sendRedirect方法实现的,参数填的是
上下文路径 + 重定向的页面。
请求转发和重定向的区别:
1.调用方式不同,请求转发用的是request,重定向则是response。
2.请求次数不同,转发只请求一次,在服务器内部实现跳转。重定向则是
向浏览器发送302状态码并设置location跳转到重定向的页面,需要二次。
3.地址栏不同,转发的地址栏不变,重定向的地址栏会变成跳转的页面URL。
4.参数不同,转发会保留参数,重定向的参数则会丢失。
5.请求转发只能在同一个项目的URL中实现跳转,而重定向可以跨域。