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