【通俗理解】
假如我有一本特别好的书,小李知道后也想要,于是小李来我家问我,有两种方式:
方式一:我告诉小李,这本书我是在某某书店买的,小李离开我家,自己去书店买书啦。
方式二:我告诉小李“你先在我家坐一会儿”,然后给书店打电话送过来一本新的,送给了小李。
方式一就是重定向,方式二就是转发。
【对比学习】
转发过程:客户浏览器发送请求---web服务器接收该请求--调用内部方法完成请求的处理和转发--将目标资源发送给客户。
注意:
①转发的路径是同一个web容器下的url
②在客户浏览器显示的仍然是第一次访问的路径
③只产生一个request,转发只是将该request转交
④速度较重定向快
⑤转发是服务器的动作
重定向过程:客户端浏览器发送请求--web服务器接收后发送新的访问地址给客户浏览器--客户浏览器根据新的访问地址自动再发送一个新的请求--服务器接收请求并相应客户。
注意:
①重定向的路径是浏览器重新发出了请求
②客户浏览器最终显示的是新的访问路径
③产生两个request
④速度较转发慢
⑤重定向时浏览器的动作
【实现】
转发的代码:
request.getRequestDispatcher("newPage.jsp").forward(request, response);
重定向代码:
response.sendRedirect("newPage.jsp");