Servlet中转发和重定向的区别

时间:2021-08-28 19:04:19

Servlet中页面的跳转有两种方式:转发和重定向。

1、转发和重定向的区别

①转发是服务器行为,重定向是客户端行为。

②转发是浏览器发生了一次请求,重定向至少是两次请求。

③转发地址栏中的url不会发生改变,重定向地址栏中的url会发生改变。

④转发因为是一次请求,两次跳转之间传输信息不会丢失,而重定向两次跳转会丢失传输信息。

⑤转发只能将请求跳转到同一个web应用中的页面,重定向可以指向任何页面,包括同一个web应用中的页面,同一个站点中的页面,其他站点的页面。

2、传递给HttpServlet  Response.sendRedirect 方法的相对URL以“/”开头,它是相对于整个WEB站点的根目录;如果创建RequestDispatcher 对象时指定的相对URL以“/”开头,它是相对于当前WEB应用程序的根目录。