-
请求转发
request.getRequestDispatcher("url").forward(request,response);
请求转发的跳转发生在服务器,实质是客户端向服务器请求一个连接的资源,由服务器直接访问连接读取数据,然后返回给客户端。客户端不知道服务器返回的内容来自哪里,地址栏的url还是请求服务器的url
-
重定向
reponse.sendRedirect("url");
重定向的跳转发生在客户端,服务器根据逻辑将状态码和地址返回给客户端,由客户端跳转
区别:
请求转发 | 重定向 | |
地址栏 | 原来地址 | 新的地址 |
数据共享 | 转发页面和转发到的页面可以共享request里面的数据. | 不能共享数据 |
效率 | 高 | 低 |
跳转范围 | 不能跨域访问 | 跨域访问 |
客户端请求次数 | 1 | 2 |
注:重定向跳转后必须加上return,要不然页面虽然跳转了,但是还会执行跳转后面的语句,
转发是执行了跳转页面,下面的代码就不会在执行了。