sendRedirect()和forward()方法有什么区别?
Posted yonyong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sendRedirect()和forward()方法有什么区别?相关的知识,希望对你有一定的参考价值。
forward是服务器内部的跳转,浏览器的地址栏不会发生变化,同时可以把request和response传递给后一个请求。sendRedirect()是浏览器方面的跳转,要发送两次请求,地址栏也会发生变化,同时request和response也会发生变化,重新生成新的对象。
URL重定向的特点:
1):浏览器地址栏路径发送变化
2):只发送了两个请求.
3):因为是不同的请求,所以不能共享请求中的数据.
4):可以跨域访问资源.
请求转发的特点:
1):浏览器地址栏路径没变
2):只发送了一个请求.
3):共享同一个请求,在请求敏感词享数据.
4):只能访问当前应用中的资源,不能跨域跳转.
请求转发和URL重定向的选择?
1:若需要共享请求中的数据,只能使用请求转发.
2:若需要访问WEB-INF中的资源,只能使用请求转发.
3:若需要跨域访问,只能使用URL重定向.
4:请求转发可能造成表单的重复提交问题.
5:其他时候,任选.
以上是关于sendRedirect()和forward()方法有什么区别?的主要内容,如果未能解决你的问题,请参考以下文章
关于java中sendRedirect,forward和include区别
response.sendRedirect() 和 request.getRequestDispatcher().forward(request,response) 有啥区别 [重复]
RequestDispatcher.forward和HttpServletResponse.sendRedirect
简述Servlet使用sendRedirect()和forward()两种方法的异同点
response.sendRedirect()和request.getRequestDispatcher().forward(request,response)的区别