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,而重定向可以重定向到其他应用中。