首页 > 代码库 > 重定向(response.sendRedirect())与请求转发(RequestDispatcher.foward())

重定向(response.sendRedirect())与请求转发(RequestDispatcher.foward())

两个方法都是让浏览器转向其他资源,它们的区别是:

1.请求转发要将HttpServletRequest与HttpServletResponse作为参数传入RequestDispatcher的forward方法,也就是新资源中也会用上上个资源的request跟response。

例如登陆页面传入了姓名与密码,登陆成功就会转向其他页面,此时的姓名作为string也被带到其他页面去了。

因为response也是作为forward的参数传输,所以不能因为在原页面上使用response来输出,不然会报错。

2.重定向是完完全全让浏览器去访问其他资源,很可能是去访问其他网站,因此与原页面关系不大。

 

两者最明显的区别就是--请求转发是去访问同一个服务器的资源,而重定向可以访问同服务器资源也可以访问其他主机。

重定向(response.sendRedirect())与请求转发(RequestDispatcher.foward())