一、调用方式
我们知道,在servlet中调用转发、重定向的语句如下:
request.getRequestDispatcher("new.jsp").forward(request, response);//转发到new.jsp
response.sendRedirect("new.jsp");//重定向到new.jsp
在jsp页面中你也会看到通过下面的方式实现转发:
<jsp:forward page="apage.jsp" />
当然也可以在jsp页面中实现重定向:
<%response.sendRedirect("new.jsp");//重定向到new.jsp%>
二、本质区别
一句话,转发是服务器行为,重定向是客户端行为。为什么这样说呢,这就要看两个动作的工作流程:
转发过程:客户浏览器发送http请求----》web服务器接受此请求--》调用内部的一个方法在容器内部完成请求处理和转发动作----》将目标资源发送给客户;
在这里,转发的路径必须是同一个web容器下的url,其不能转向到其他的web路径上去,中间传递的是自己的容器内的request。在客户浏览器路径栏显示的仍然是其第一次访问的路径,也就是说客户是感觉不到服务器做了转发的。转发行为是浏览器只做了一次访问请求。
重定向过程:客户浏览器发送http请求----》web服务器接受后发送302状态码响应及对应新的location给客户浏览器--》客户浏览器发现是302响应,则自动再发送一个新的http请求,请求url是新的location地址----》服务器根据此请求寻找资源并发送给客户。
在这里location可以重定向到任意URL,既然是浏览器重新发出了请求,则就没有什么request传递的概念了。在客户浏览器路径栏显示的是其重定向的路径,客户可以观察到地址的变化的。重定向行为是浏览器做了至少两次的访问请求的。
转载自:http://hi.baidu.com/neonway/blog/item/b7dbab1901f60379dbb4bd18.html
分享到:
相关推荐
本文将详细介绍请求转发和重定向的概念、实现方式以及它们之间的区别,帮助初学者更好地理解和掌握这两项技术。 #### 二、请求转发 请求转发是一种在同一应用程序内部不同资源之间传递控制的方式。当服务器接收到...
1. 深入理解HTTP协议:了解HTTP请求和响应的工作原理,包括状态码的意义,这对于理解请求转发和重定向如何工作至关重要。 2. 实践编程:通过编写实际的Servlet或Filter来实现请求转发和重定向,这能帮助你更好地...
在Web应用开发中,请求...总的来说,理解和掌握请求转发与重定向的区别,对于编写高效、灵活的Web应用程序至关重要。在设计和优化网站逻辑时,合理利用这两种技术,能够提高用户体验,同时也有利于代码的组织和维护。
首先,我们要理解请求转发(Request Forwarding)和重定向(Redirecting)的基本概念: 1. 请求转发: - 请求转发是在服务器端内部完成的,客户端(浏览器)只发起一次请求。服务器收到请求后,会将请求传递给其他...
- 当需要减少网络传输开销时,因为转发只涉及到一次请求,所以相比重定向来说,转发的效率更高。 2. **使用重定向的情况**: - 当需要跨应用跳转或者跳转到外部链接时,一般选择使用重定向。 - 当需要清除当前...
总之,转发和重定向都是Web开发中的重要概念,它们各有优缺点,理解其工作原理并合理应用,能够帮助我们构建更加高效、安全的Web应用程序。在实际开发中,我们需要根据业务需求、性能考量以及用户体验等因素来决定...
本文将详细介绍转发与重定向之间的区别,帮助读者更好地理解并运用这两种技术。 #### 一、转发(Forward) **定义:** 转发是指服务器内部的跳转,当服务器接收到客户端请求后,通过转发机制将请求转交给其他资源...
Java Servlet 请求转发和重定向 Java Servlet 请求转发和重定向是两种不同的页面跳转机制,它们在 Web 应用程序中扮演着重要的角色。理解这两种机制的区别和使用场景是非常重要的。 请求转发是指将请求再转发到另...
首先,我们来理解请求转发(Request Forward)。在Servlet中,请求转发是一种在服务器内部将一个请求从一个资源传递到另一个资源的技术。这种方式是服务器端的行为,客户端(浏览器)并不知道这个过程,它看起来像是...
- **生成响应包**:虚拟NIC接收到请求后,调用上层应用生成符合RFC 2616标准的重定向响应包。 - **返回给客户端**:最后,通过虚拟NIC将响应包发送回客户端,完成整个重定向过程。 #### 4. 技术细节 为了实现上述...
在Spring MVC框架中,请求转发和...总的来说,请求转发通常用于在同一应用内部进行页面间的导航,而重定向则常用于外部链接、登录重定向或防止表单重复提交等情况。在实际开发中,开发者应根据具体需求选择合适的方法。
在Java Web开发中,理解“重定向”与“转发”的概念及其差异至关重要。这两种机制都是用于在Web应用程序内部或跨应用程序之间导航和控制请求流程的关键手段,但它们在实现方式、对客户端的影响以及对服务器资源的...
- 请求转发是在服务器内部完成的,客户端浏览器并不知情。这意味着,浏览器的URL不会改变,因为请求并没有离开当前应用。 - 转发路径可以是相对路径,也可以是绝对路径。相对路径可以不以斜杠开头,表示相对于当前...
首先,我们要明白请求转发和请求跳转之间的基本区别: 1. 请求转发: 请求转发是在服务器端内部完成的操作。当一个请求到达控制器方法后,如果需要将处理逻辑转移到其他控制器或同一个控制器的另一个方法,就会使用...
首先,让我们理解什么是重定向和转发: 1. **重定向(Redirect)**:在HTTP响应中,服务器向客户端发送一个302状态码,并在Location头中包含新的URL。浏览器接收到这个响应后,会发起一个新的HTTP请求到指定的URL。...
综上所述,XSwitch作为一款Chrome扩展程序,利用JavaScript和Chrome的`webRequest` API实现了请求转发功能,为开发者、测试人员和数据分析师提供了便捷的工具,同时也需要注意合理使用以保护个人隐私。通过深入理解...
在Web开发中,"转发"(Forward)和"重定向"(Redirect)是两种常见的请求处理方式,它们在实现客户端和服务器之间的交互时起到至关重要的作用。了解它们的区别对于优化用户体验和提高应用性能至关重要。 首先,让...
4. **BurpHttpForwardRequests**: 压缩文件中的`BurpHttpForwardRequests-master`可能是Burp Suite的一个扩展或插件,它可能提供了自定义HTTP请求转发的功能,例如,可以设置规则根据特定条件转发请求,或者在转发...