sendRedirect()和forward()方法有什么区别?

Posted yonyong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sendRedirect()和forward()方法有什么区别?相关的知识,希望对你有一定的参考价值。

forward是服务器内部的跳转,浏览器的地址栏不会发生变化,同时可以把request和response传递给后一个请求。sendRedirect()是浏览器方面的跳转,要发送两次请求,地址栏也会发生变化,同时request和response也会发生变化,重新生成新的对象。

 

URL重定向的特点:

1):浏览器地址栏路径发送变化

2):只发送了两个请求.

3):因为是不同的请求,所以不能共享请求中的数据.

4):可以跨域访问资源.

5):不可以访问WEB-INF中的资源.

请求转发的特点:

1):浏览器地址栏路径没变

2):只发送了一个请求.

3):共享同一个请求,在请求敏感词享数据.

4):只能访问当前应用中的资源,不能跨域跳转.

5):可以访问WEB-INF中的资源.

请求转发和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)的区别

sendRedirect()和forward()方法的区别