在服务器端有两种技术可以实现请求的跳转:
reponse
response.sendRedirect("url");
response.sendRedirect("del.do?user_id=123");
页面重定向
客户端再次发出请求,地址栏会发生变化
重新一次请求
forward 转发
request.getRequestDispatcher().forward(req,res);
同一个请求把资源转发到下一个请求中
本质:有两个web组件,a,b。
重定向:由a重定向到b,那么b收到请求就是a发起的请求,地址栏显示的也是a请求b的url。a和b收到的是不同的请求对象。
转发:由a转发到b,那么b收到请求是请求a的请求对象,地址栏显示的也是请求a的url,a和b收到的就是同一个请求对象。
什么场合使用?
能用重定向则不用转发。
*当一个服务器端组件,需要取得请求上一个组件请求中的数据的时候,那么需要转发。