转发(一次请求,一次响应)
客户端——————request—————————>服务器
客户端<———success.html(路径、内容)——服务器
服务器返回的既有页面地址又有页面内容,request单次请求不会丢失其存储的数据
重定向(两次请求,两次响应)
客户端—————request—————————>服务器
客户端<———success.html(路径)————服务器
服务器第一次返回的是页面路径
客户端第二次请求
客户端—————success.html———————>服务器
客户端<————success.html(内容)————服务器
服务器第二次返回页面内容,response重定向两次请求会丢失其第一次请求存储的数据
重定向和转发的对⽐:
重定向:response.sendRedirect()
转发:request.getRequestDispatcher().forward(request,response);
相同点:都⽤来跳转⻚⾯
不同点:
a.重定向时地址栏会改变,request中存储的数据会丢失.转发时地址栏显示的是请求⻚⾯的地址,request数据可以保存。
b.转发属于⼀次请求⼀次响应,重定向属于两次请求(地址栏修改了两次)两次响应。
注意:使⽤js跳转⻚⾯,也会丢失request中的数据