java web重定向与转发

时间:2024-08-07 17:06:50

首先定义一下这两个词:

重定向是将用户从当前页面或servlet定向到另外一个jsp页面或者servlet

转发是将用户对当前jsp页面或者servlet对象的请求转发给另外一个jsp页面或者servlet对象。

在servlet类当中可以使用HttpServletResponse类的重定向方法sendRedirect()

也可以使用RequestDispatcher类的转发方法forward()。

以下为两者的区别:

1)RequestDispatcher的forward()方法只能将请求转发给同一个Web应用中的组件,HpptServletResponse的sendRedirect()方法不仅可以重定向到当前

应用程序中的其它资源,还可以重定向到同一个站点上的其它应用程序中的资源,甚至是使用绝对URL重定向到其它站点的资源。如果传递给sendRedirect()方法

的相对URL以“/”开头,它是相对于整个Web站点的根目录;如果创建RequestDispatcher对象时制定的相对URL以“/”开头,它是相对于当前Web应用程序的根目录。

2)使用sendRedirect()方法重定向的访问过程结束后,浏览器的地址栏中显示的URL会发生变化,由初始的URL地址变成重定向后的目标URL;然而调用Request

-Dispatcher的forword()方法的请求转发过程结束后,浏览器的地址栏保持初始的URL地址不变。