重定向(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())的主要内容,如果未能解决你的问题,请参考以下文章
response.sendRedirect()和request.getRequestDispatcher().forward(request,response)使用
重定向(response.sendRedirect())与请求转发(RequestDispatcher.foward())
ajax请求后台,response.sendRedirect失效,无法重定向
javaweb中重定向和请求转发(response.sendRedirect()和request.getRequestDispatcher(rul).forward(request,response)