请求转发是客户端向服务器发起一次请求,服务器匹配相应的servlet进行处理,最后调用request.getRequestDispacther.forward方法,请求携带了客户端所需要的数据,转发到指定的jsp页面。jsp页面可以通过getAttribute()获取共享的数据。 此过程只发生了一次请求,一次响应,request域中的数据是共享的。
重定向是客户端向服务器发起一次请求,服务器匹配相应的servlet进行处理,最后调用responese.sendRedirect()方法,这时,服务器告诉客户端要再发一次请求,重定向到指定的jsp页面,客户端收到信息后,再发一次请求,并且跳到指定的页面。 此过程发生了两次请求,两次相应,request域中的数据是不共享的。
它们的区别?
答:1、关键字上区别,请求转发:forward 重定向 :redirect
2、请求转发:客户端发起了一次请求,服务器响应一次。 重定向 :客户端发起两次请求,服务器响应两次。
3、请求转发:request域中的数据共享 重定向:request域中的数据不共享
4、请求转发:地址栏的地址不会发生改变 重定向:地址会发生改变
5、请求转发:请求转发是发生在同一个服务器中的 重定向:可以发生在不同的服务器中,可以跳转到不同的服务器或域名中。
原文:https://www.cnblogs.com/luojack/p/11282529.html