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

Posted ming_szu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了重定向(response.sendRedirect())与请求转发(RequestDispatcher.foward())相关的知识,希望对你有一定的参考价值。

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

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

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

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

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

 

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

以上是关于重定向(response.sendRedirect())与请求转发(RequestDispatcher.foward())的主要内容,如果未能解决你的问题,请参考以下文章

404 与 response.sendRedirect

response.sendRedirect()和request.getRequestDispatcher().forward(request,response)使用

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

ajax请求后台,response.sendRedirect失效,无法重定向

javaweb中重定向和请求转发(response.sendRedirect()和request.getRequestDispatcher(rul).forward(request,response)

使用response.sendRedirect(url) 重定向的url指定中文get参数,接收页面获取的值为问号