转发:
request.getRequestDispatcher("success.jsp").forward(request,response);
重定向:
response.sendRedirect("success.jsp");
1.转发:用户发送请求到服务器,服务器收到请求直接跳转到所要跳转的页面,所以页面跳转由服务器来执行。
重定向:用户发送请求到服务器,服务器收到请求把所要跳转的页面路径反馈给客户端,告诉它去跳转到那个页面,然后客户端在跳转到所要执行的页面。
2.通常情况下转发更快,而且能保持request内的对象,所以他是第一选择。但是由于在转发之后,浏览器中URL仍然指向开始页面,此时如果重载当前页面,开始页面将会被重新调用。
3.重定向:以前的request中存放的变量全部失效,并进入一个新的request作用域。
转发:以前的request中存放的变量不会失效,就像把两个页面拼到了一起。
4.重定向的原理是服务器返回一个301/302的状态码,以及新的网址,客户端浏览器收到以后再请求新的页面。
转发则在客户端看来和直接返回了页面没有任何分别。转发相当于服务器做了反向代理。
转发:地址栏为转向前的URL
重定向:地址栏为转向后的URL
转发:一次请求
重定向:两次请求
转发:request里的信息会传递给处理程序2
重定向:request里的信息不会传递给处理程序2