请求转发与重定向的区别
原文地址:https://blog.csdn.net/fox_bert/article/details/80634468 转发和重定向流程图如下 请求转发(服务器端转发): 1、客户端(HTML)向服务器发送一条请求,服务端发现匹配的servlet,并指定它去执行。当这个servlet执行完之后,它要调用getRequestDispacther()方法,返回值类型是RequestDispatcher,设定目标资源jsp(jsp==servlet是服务端)。 2、调用forward(ServletRequest req,ServletResponse res):该方法是RequestDispatcher接口的方法,将请求从一个servlet转发到服务器上另一个资源jsp(目标资源)(jsp==servlet是服务端) 3、目标资源jsp(jsp==servlet是服务端)接收转发过来的请求,并将接收数据后的jsp生成HTML返回给客户端 重点 : 转发是服务器行为,因此也是在这个web应用内转发,整个过程是一个请求一个响应。可以看做一个request请求里包含了多个servlet,多个servlet共享的是同一个request,所以他们之间可以通过getAttribute()读取前一个servlet的存值。 (因为是一次请求,所以地址栏是不会改变的) 由request执行转发操作