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解析 在Web开发中,Forward(转发)与Redirect(重定向)是两种常见的页面跳转方式。它们虽然都可以实现从一个页面跳转到另一个页面的功能,但在实现机制、应用场景以及对用户浏览器地址栏的...
在开发Web应用时,我们经常会遇到“forward”和“redirect”的概念,它们是两种不同的页面跳转方式。理解和掌握它们的区别对于优化用户交互和处理请求流至关重要。 **forward(转发)**: - 转发是由服务器端完成的...
当我们需要在不同的页面之间导航时,`forward`和`redirect`是两种常见的处理请求转发和重定向的方法。本文将深入探讨这两种机制及其区别。 首先,`forward`是通过服务器端内部跳转实现的。它使用`RequestDispatcher...
"JAVA面试题之Forward与Redirect的区别详解" 本文主要讲解了在JAVA面试中可能遇到的问题,即JAVA中Forward与Redirect两者之间的区别。文中详细介绍了两种请求转发方式的原理和区别,包括请求转发的含义、Forward...
在Web开发中,"转发"(Forward)和"重定向"(Redirect)是两种常见的请求处理方式,它们在实现客户端和服务器之间的交互时起到至关重要的作用。了解它们的区别对于优化用户体验和提高应用性能至关重要。 首先,让...
2. 重定向(Redirect): - 使用`Response.sendRedirect()`方法实现。 - 重定向会导致浏览器发起一个新的HTTP请求,所以URL会显示为新的目标地址,客户端浏览器能够感知到这个变化。 - 重定向路径必须是绝对路径...
ActionForward的使用 1、理解全局和局部ActionForward的概念 2、redirect的使用 3、struts-config.xml文件不允许动态修改 4、理解动态ActionForward,动态的ActionForward是可以运行期修改的
4. **ActionForward与Redirect**:ActionForward不仅限于在同一个应用内的转发,还可以实现重定向(Redirect)。重定向意味着浏览器将发出一个新的HTTP请求,而不仅仅是服务器端的内部跳转。这可以通过在`path`属性...
Java面试宝典涵盖了Java开发语言的核心知识点,包括类的访问修饰符、Servlet生命周期、同步与异步编程、HTTP请求的forward和redirect以及synchronized关键字的应用。以下是对这些知识点的详细阐述: 1. 访问修饰符...
综上所述,Forward与Redirect的区别主要体现在请求次数、请求对象共享以及URL变化等方面;Spring框架通过一系列的初始化过程、事务管理和依赖注入等功能,极大地简化了Java Web应用的开发工作,提高了开发效率和代码...
下列关于JSP和Servlet中forward与redirect的描述,哪一项是不正确的? - forward不会改变浏览器地址栏中的URL,而redirect会。 - 在forward和redirect的情况下,服务器都会发送新的URL给浏览器打开。 - forward不会...
### Java面试题之Forward与Redirect的区别 #### Forward 1. **概念**: `Forward`是一种服务器端请求跳转的方式,通过`RequestDispatcher`接口中的`forward()`方法实现。 2. **作用**: `Forward`可以将当前请求转发...
19.Servlet中forward和redirect的区别.avi
7. **ActionForward与Redirect**:ActionForward用于页面间的跳转,而Redirect是HTTP的重定向,它们在页面状态和URL显示上有不同的表现。 8. **Struts与Spring集成**:Struts可以与Spring框架无缝集成,Spring提供...
11. **ActionForward与Redirect**:区别和使用ActionForward和Redirect来控制请求转发和重定向,以及它们对URL和状态保持的影响。 12. **整合其他技术**:Struts与其他技术如Hibernate(ORM)、Spring(依赖注入)...
Java面试题19.forward和redirect的区别.mp4
4. **页面跳转:forward与redirect**: - `forward`(请求转发):在服务器端完成,不改变浏览器地址栏的URL。适用于同一应用内部的页面跳转,数据共享。 - `redirect`(重定向):浏览器收到重定向指令后,发起新...
#### forward与redirect的区别 **1.1 地址栏显示** - **forward(转发)**:当服务器接收到客户端的请求后,通过`forward`的方式将请求交给另一个资源处理。在这个过程中,服务器内部进行资源跳转,客户端(浏览器...
3. forward与redirect: - forward:服务器内部重定向,不会改变URL,适合处理同一服务器内的请求。 - redirect:客户端重定向,浏览器重新发起请求,URL会改变,可用于跨域跳转。 4. JSP动态INCLUDE与静态...
4. **forward与redirect**: - **forward**:内部转发,客户端请求只发生一次,请求的属性和参数得以保留。 - **redirect**:重定向,客户端发起两次请求,第二次请求的属性和参数与第一次无关。 5. **Web容器**...