一、重定向
1、什么是重定向?
重定向(Redirect)就是一个ServletA处理不了客户端的请求但知道ServletB,响应给客户端,让客户端重新发送请求到能处理这个服务的ServletB,由客户端进行页面跳转。
图示:
2、代码示例:
response.sendRedirect("能处理这服务的Servlet从浏览器上搜索的URL");
3、重定向特点:
(1)在用户浏览器地址栏显示新的地址
(2)向服务器请求两次
(3)请求域中的数据会丢失,因为是2次请求
二、转发
1、什么是转发?
服务器内的一个ServletA处理完它能处理的业务后将请求在服务器内发送给ServletB继续处理业务,在客户端的视角来看,他的请求就是一个Servlet完成的。
图示:
2、代码演示
//使用RequestDispatcher对象来进行转发
RequestDispatcher rd = request.getRequestDispatcher("服务器内ServletB的地址");
rd.forward(request, response);
//或者rd.include(request, response);
3、转发特点
(1)客户端浏览器地址栏路径不发生变化。
(2)只能转发到当前服务器内部资源中。
(3)只请求一次
(4)请求域中数据不会丢失。
三、转发中的include与forward方法
1、forward方法
图示:
2、include方法
图示: