超详细请求转发与重定向异同点
请求转发
request.getRequestDispatcher(url).forward(request, response);

重定向
response.sendRedirect(url);

异同
| 请求转发 | 重定向 | |
|---|---|---|
| 页面 | 跳转 | 跳转 |
| URL | 不改变 | 改变(302重定向) |
| 请求次数 | 一次(内部转发) | 两次(第一次请求得到第二次请求的地址) |
| 执行效率 | 较高 | 较低 |
| request | 转发前后是同一个 request 对象 可用其在多个页面间传递参数 |
重定向前后不是同一个 request 对象 不可用其在多个页面间传递参数 要传递参数只有在 url 后加参 |
| 表单提交 | 可能造成表单的重复提交 | 不会重复提交 |
| 跨域访问 | 只能在服务器内部转发 不能跨域访问 |
可跳转到其他服务器转发 可以跨域访问 |
| 路径 | /代表的是当前 web 站点的根目录 | /代表的是当前 web 应用的根目录 |
| 关于重定向与请求转发中的路径问题 |

浙公网安备 33010602011771号