`

forward和redirect有什么区别

    博客分类:
  • java
 
阅读更多


redirect和forward的定义:
1. redirect(重定向):服务端发送给客户端一个重定向的临时响应头,这个响应头包含重定向之后的URL,客户端用新的URL重新向服务器发送一个请求。
2. forward(请求转向):服务器程序内部请求转向,这个特性允许前一个程序用于处理请求,而后一个程序用来返回响应。

 

 

forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。
redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以session,request参数都可以获取(request不能获取,在跳转到的目标页面不能使用request.getAttribute("参数"),该语句失效),

所以 response .sendRedirect() 不能用 request 对象传递数据,而 forward 是可以的

 

 

Forward

                 ... Forward 由应用程序内部执行

                 ... 浏览器完全不会识别到forward命令,

                     因此原始的URL地址会被完好的保留下来

           . ... 当浏览器刷新的时候会向原始地址提交请求.

redirect

                    ... redirect 分为两个步骤, 网络应用程序会指定浏览器获取第二个网址,

                           这个网址和原始的url是不同的

                    .... 当浏览器刷新时不会请求原始地址而是会返回被转移的网址

                    . ... 由于redirect 需要两个步骤,因为执行起来比forward慢


总体说来, 当能够保证安全的情况下应该采用forward. 否则应该采用redirect.

分享到:
评论

相关推荐

    转发和重定向的区别 forward和redirect的区别

    总结来说,转发和重定向是Java Servlet中处理请求路由的两种重要手段,它们各有优缺点,选择哪种取决于具体需求,比如是否需要保持请求状态、URL是否需要改变以及对性能的影响等因素。在实际开发中,理解这两者的...

    forward与redirect区别

    在开发Web应用时,我们经常会遇到“forward”和“redirect”的概念,它们是两种不同的页面跳转方式。理解和掌握它们的区别对于优化用户交互和处理请求流至关重要。 **forward(转发)**: - 转发是由服务器端完成的...

    forward转发与redirect重定向的区别.zip

    在Web开发中,"转发"(Forward)和"重定向"(Redirect)是两种常见的请求处理方式,它们在实现客户端和服务器之间的交互时起到至关重要的作用。了解它们的区别对于优化用户体验和提高应用性能至关重要。 首先,让...

    19.Servlet中forward和redirect的区别.avi

    19.Servlet中forward和redirect的区别.avi

    JAVA面试题之Forward与Redirect的区别详解

    "JAVA面试题之Forward与Redirect的区别详解" 本文主要讲解了在JAVA...Forward和Redirect是两种不同的请求转发方式,每种方式都有其特点和应用场景。了解这两种转发方式的区别和原理,对于JAVA web开发来说非常重要。

    forward与redirect!转发和重定向 解析

    ### Forward与Redirect解析 在Web开发中,Forward(转发)与Redirect(重定向)是两种常见的页面跳转方式。它们虽然都可以实现从一个页面跳转到另一个页面的功能,但在实现机制、应用场景以及对用户浏览器地址栏的...

    Java面试题19.forward和redirect的区别.mp4

    Java面试题19.forward和redirect的区别.mp4

    jsp forward与redirect实探

    当我们需要在不同的页面之间导航时,`forward`和`redirect`是两种常见的处理请求转发和重定向的方法。本文将深入探讨这两种机制及其区别。 首先,`forward`是通过服务器端内部跳转实现的。它使用`RequestDispatcher...

    java中dispcter和forward的区别

    `forward()`操作发生在服务器端,对客户端浏览器而言是透明的,即浏览器的URL不会改变,而且请求和响应对象在转发过程中保持不变,可以共享`Request`范围内的数据。 相对地,`sendRedirect()`是`...

    struts_actionforward.rar_ActionForward_redirect

    ActionForward的使用 1、理解全局和局部ActionForward的概念 2、redirect的使用 3、struts-config.xml文件不允许动态修改 4、理解动态ActionForward,动态的ActionForward是可以运行期修改的

    JAVA基础知识点汇总

    10、Servlet中的forward和redirect有什么区别: Forward是服务器内部的重定向,服务器直接访问目标地址的url,地址不变。 Redirect:客户端的重定向,完全跳转,地址改变。 11、JSP的内置对象: 1)require(请求对象...

    2022最新Java面试题常见面试题与答案汇总0001.docx

    网络模块中,涵盖了forward和redirect有什么区别、简述TCP和UDP的区别、TCP为什么要三次握手、两次不行吗、为什么、TCP粘包是怎么产生的等问题。 该资源摘要信息涵盖了Java面试题的方方面面,为初/中/高级Java...

    直接请求转发(Forward)和间接请求转发(Redirect)两种区别.docx

    主要分为直接请求转发(Forward)和间接请求转发(Redirect)。这两种转发方式在处理请求时有着显著的区别。 直接请求转发(Forward): 直接请求转发是服务器内部的资源调度,用户在浏览器中只会看到最初的请求...

    springMVC3学习 九 redirect和forward跳转 源码

    springMVC3学习 九 redirect和forward跳转 源码 文章地址http: blog csdn net itmyhome1990 article details 26286669

    structs in action中文完全版\6. 连线 ActionForward.pdf

    通过合理配置ActionForward,可以有效地管理应用程序的控制流和数据流,实现更加灵活和高效的Web应用开发。开发者应充分了解ActionForward的各项属性及其使用场景,以便在实际项目中发挥其最大效能。

    ActionForward和国际化

    当一个Action执行完毕后,可以通过返回一个`ActionForward`实例来告诉Struts2下一步应该做什么。`ActionForward`的默认行为是进行服务器端的页面转发,即把控制权交给另一个JSP页面或Servlet,但不发送新的HTTP请求...

    Ext做的例子右键菜单设置forward跳转b/s版

    菜单中的“前进”项有一个点击事件处理器,该处理器中定义了要前进的URL,并调用了`component.forward()`方法执行页面的forward跳转。 注意,`component.forward()`是假设你的组件(这里为面板)具备了这样的方法,...

    Struts2中实现页面的跳转

    如果`<jsp:forward/>`指向的页面不存在,服务器会抛出404错误,此时需要确保web.xml中有正确的错误处理配置。 4. **Struts2拦截器**:Struts2的拦截器可能会影响页面跳转,特别是处理异常的拦截器。确保这些拦截器...

    request和response实现跳转和重定向的区别

    这两者在实现页面跳转时有明显的区别,下面将详细阐述它们的不同之处。 首先,我们了解`request`和`response`的基本概念。`Request`对象代表了客户端向服务器发送的数据,包括URL、HTTP方法(GET、POST等)、请求头和...

    redirect--and-forword.rar_redirect

    在Java Web开发中,"重定向"(Redirect)和"转发"(Forward)是两种常见的处理请求的方法,它们用于在服务器端控制用户浏览器的行为。理解并熟练掌握这两者对于Java初学者至关重要,因为它们在构建动态网站时起着...

Global site tag (gtag.js) - Google Analytics