`
explore
  • 浏览: 80690 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

forward 与redirect

    博客分类:
  • J2EE
阅读更多

转自:http://supercrsky.iteye.com/blog/372626

 

    forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。还有,转发是在web应用程序之内进行的,可以访问web应用程序所设定的内部目录,像是WEB-INF目录,只能在Web应用程序中进行,不能指定至其它的Web应用程序的地址。
    redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以session,request参数都可以获取。web应用程序会要求客户端浏览器重新发出请求地址,客户端会重新连接至所指定的地址,因此浏览器的地址会出现重新导向的信息,重新导向后的请求由浏览器发出,所以不能访问Web应用程序中的隐藏目录,像是WEB-INF,重新是由浏览器重新要求一个网页,可以指定至其他的Web应用程序地址。

RequestDispatcher.forward()方法和HttpServletResponse.sendRedirect()方法的区别是:前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址,他是不会改变Request的值,如果你需要在下一个页面中能从中获取新的信息的话,你可以Request.setAttribute()来放置一些标志,这样从下一个页面中获取;后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。所以,前者更加高效,在前者可以满足需要时,尽量使用Request Dispatcher.forward()方法,并且,这样也有助于隐藏实际的链接。在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用 HttpServletResponse.sendRequest()方法。

   1、forward与include共亨Request范围内的对象,而redirect则不行,即:如果一个javabean被声明为request范围的话,则被forward到的资源也可以访问这个javabean,而redriect则不行。
   2、forward与include基本上都是转发到context内部的资源,而redirect可以重定向到外部的资源,如: req.sendRedriect("http://www.baidu.com");

 

 

分享到:
评论

相关推荐

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

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

    forward与redirect区别

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

    jsp forward与redirect实探

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

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

    "JAVA面试题之Forward与Redirect的区别详解" 本文主要讲解了在JAVA面试中可能遇到的问题,即JAVA中Forward与Redirect两者之间的区别。文中详细介绍了两种请求转发方式的原理和区别,包括请求转发的含义、Forward...

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

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

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

    2. 重定向(Redirect): - 使用`Response.sendRedirect()`方法实现。 - 重定向会导致浏览器发起一个新的HTTP请求,所以URL会显示为新的目标地址,客户端浏览器能够感知到这个变化。 - 重定向路径必须是绝对路径...

    struts_actionforward.rar_ActionForward_redirect

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

    struts入门,最适合新手上路

    4. **ActionForward与Redirect**:ActionForward不仅限于在同一个应用内的转发,还可以实现重定向(Redirect)。重定向意味着浏览器将发出一个新的HTTP请求,而不仅仅是服务器端的内部跳转。这可以通过在`path`属性...

    java面试宝典.docx

    Java面试宝典涵盖了Java开发语言的核心知识点,包括类的访问修饰符、Servlet生命周期、同步与异步编程、HTTP请求的forward和redirect以及synchronized关键字的应用。以下是对这些知识点的详细阐述: 1. 访问修饰符...

    经典面试题-答案.docx

    综上所述,Forward与Redirect的区别主要体现在请求次数、请求对象共享以及URL变化等方面;Spring框架通过一系列的初始化过程、事务管理和依赖注入等功能,极大地简化了Java Web应用的开发工作,提高了开发效率和代码...

    jsp面试考题

    下列关于JSP和Servlet中forward与redirect的描述,哪一项是不正确的? - forward不会改变浏览器地址栏中的URL,而redirect会。 - 在forward和redirect的情况下,服务器都会发送新的URL给浏览器打开。 - forward不会...

    文章分类:Java编程,java面试题4

    ### Java面试题之Forward与Redirect的区别 #### Forward 1. **概念**: `Forward`是一种服务器端请求跳转的方式,通过`RequestDispatcher`接口中的`forward()`方法实现。 2. **作用**: `Forward`可以将当前请求转发...

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

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

    精通struts基于MVC的java web设计与开发(代码全九netstore下4).rar

    7. **ActionForward与Redirect**:ActionForward用于页面间的跳转,而Redirect是HTTP的重定向,它们在页面状态和URL显示上有不同的表现。 8. **Struts与Spring集成**:Struts可以与Spring框架无缝集成,Spring提供...

    精通STRUTS:JAVA WEB 基于MVC的设计与开发

    11. **ActionForward与Redirect**:区别和使用ActionForward和Redirect来控制请求转发和重定向,以及它们对URL和状态保持的影响。 12. **整合其他技术**:Struts与其他技术如Hibernate(ORM)、Spring(依赖注入)...

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

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

    SpringMVC-02教案1

    4. **页面跳转:forward与redirect**: - `forward`(请求转发):在服务器端完成,不改变浏览器地址栏的URL。适用于同一应用内部的页面跳转,数据共享。 - `redirect`(重定向):浏览器收到重定向指令后,发起新...

    阿里巴巴校园招聘面试试题合集总结

    #### forward与redirect的区别 **1.1 地址栏显示** - **forward(转发)**:当服务器接收到客户端的请求后,通过`forward`的方式将请求交给另一个资源处理。在这个过程中,服务器内部进行资源跳转,客户端(浏览器...

    JSP和SERVLET笔试常遇到的一些问题

    3. forward与redirect: - forward:服务器内部重定向,不会改变URL,适合处理同一服务器内的请求。 - redirect:客户端重定向,浏览器重新发起请求,URL会改变,可用于跨域跳转。 4. JSP动态INCLUDE与静态...

    Java笔试面试题(含数据库&JQuery&JSP&JavaScript)

    7. forward与redirect的区别: forward和redirect都是请求处理中经常用到的技术。forward是服务器内部的转发行为,客户端并不知道转发动作,地址栏URL不变,且请求参数不会丢失。而redirect是客户端的请求跳转,地址...

Global site tag (gtag.js) - Google Analytics