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

forward与redirect

阅读更多
forward是服务器内部重定向,程序收到请求后重新定向到另一个程序,客户机并不知道;redirect则是服务器收到请求后发送一个状态头给客户,客户将再请求一次,这里多了两次网络通信的来往。当然 forward也有缺点,就是forward的页面的路径如果是相对路径就会有些问题了。

forward 会将 request state , bean 等等信息带往下一个 jsp
redirect 是送到 client 端后再一次 request , 所以资料不被保留.
使用 forward 你就可以用 getAttribute() 来取的前一个 jsp 所放入的 bean 等等资料

使用response.sendRedirect时就需要注意以下两点:

1.在使用response.sendRedirect时,前面不能有HTML输出。
这并不是绝对的,不能有HTML输出其实是指不能有HTML被送到了浏览器。事实上现在的server都有cache机制,一般在8K(我是说JSP SERVER),这就意味着,除非你关闭了cache,或者你使用了out.flush()强制刷新,那么在使用sendRedirect之前,有少量的HTML输出也是允许的。
如果报错说,“一些信息已经被submitted”(原文忘了),那么,你就要注意看了,前面是不是有过多的HTML输出了。

2.在response.sendRedirect之后,应该紧跟一句return;
我们已经知道response.sendRedirect是通过浏览器来做转向的,所以只有在页面处理完成后,才会有实际的动作。既然你已经要做转向了,那么后的输出还有什么意义呢?而且有可能会因为后面的输出导致转向失败。
分享到:
评论

相关推荐

    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与静态...

    j2ee面试题,超经典

    4. **forward与redirect**: - **forward**:内部转发,客户端请求只发生一次,请求的属性和参数得以保留。 - **redirect**:重定向,客户端发起两次请求,第二次请求的属性和参数与第一次无关。 5. **Web容器**...

Global site tag (gtag.js) - Google Analytics