请求包含、请求转发、重定向的区别

1、请求转发和请求包含的相同点

(1)请求包含和请求转发都是在一个请求中,访问两个Servlet。
(2)请求包含和请求转发都是有一个Servlet去调用执行另一个Servlet
(3)请求包含和请求转发都可以共享request中的数据,因为都是一个请求。

(4)请求转发和请求包含都要使用RequestDispatcher对象:RequestDispatcher rd = request.getRequestDispatcher("/BServlet");

(5)请求转发和请求包含的路径都是服务器端路径,相对当前应用

2、请求转发和请求包含的不同点

(1)请求转发执行RequestDispatcher的forward()方法:rd.forward(request,response);

(2)请求包含执行RequestDispatcher的include()方法:rd.include(request,response);

3、 请求转发与重定向
* 请求转发是一个请求,而重定向是两个请求
* 请求转发,是使用RequestDispatcher来完成,重定向使用response对象来完成
* 请求转发的路径都是服务器端路径,而重定向是客户端路径,需要给出应用名称
* 请求转发在浏览器地址栏中的地址是第一个Servlet的路径,而重定向在地址栏中的地址是第二个请求的Servlet的路径
* 请求转发中的两个Servlet是可以共享request数据的,而重定向因为是两个请求,所以不能共享request数据
* 请求转发只能转发到本应用的其他Servlet,而重定向可以重定向到其他应用中。

 

原文地址:https://www.cnblogs.com/beanjk/p/11251134.html