`
xintiankun
  • 浏览: 3905 次
  • 来自: no
社区版块
存档分类
最新评论

forward redirect 本质区别

阅读更多
tomcat源码:



----------------------redirect-------------------------------



try {
            String absolute = toAbsolute(location);
            setStatus(SC_FOUND);
            setHeader("Location", absolute);
} catch (IllegalArgumentException e) {
            setStatus(SC_NOT_FOUND);
}



其中:
  /**
    * Status code (302) indicating that the resource reside
    * temporarily under a different URI. Since the redirection might
    * be altered on occasion, the client should continue to use the
    * Request-URI for future requests.(HTTP/1.1) To represent the
    * status code (302), it is recommended to use this variable.
    */
public static final int SC_FOUND = 302;



-----------------------------------forward-------------------------------------------



ApplicationDispatcher.forward

-->ApplicationDispatcher.doForward

-->ApplicationDispatcher.processRequest(request,response)

-->ApplicationDispatcher.invoke(outerRequest, response)

-->filterChain.doFilter(request, response)

-->filter.doFilter(request, response, this)

.....N个filter,最后-->

-->servlet.service(request, response);



重新过了一遍 filter,servlet
分享到:
评论

相关推荐

    简单谈谈SpringMVC转发和重定向的区别

    SpringMVC 框架中,转发和重定向是两个常用的请求跳转方式,但它们之间有着本质的区别。本文将详细讲解 SpringMVC 中的转发和重定向的区别,并给出实践示例。 一、转发(Forward) 在 SpringMVC 中,转发是通过 `...

    联合永道java面试题.pdf

    本资源摘要信息对应的文件是“联合永道java面试题.pdf”,该文件主要涵盖了JavaWeb开发中的一些重要知识点,包括HTTPClient的超时设置、Servlet的生命周期、Forward和Redirect的概念、JSP和Servlet的区别、JSP的编译...

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

    1. **Forward 和 Redirect 区别** - Forward(转发)是服务器内部操作,它不会改变URL地址,浏览器看到的始终是最初的请求URL,而服务器在后台处理请求并调用其他资源。 - Redirect(重定向)则是服务器向浏览器...

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

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

    java面试题web部分

    本文总结了Java web开发面试中的一些常见问题和答案,涵盖了forward和redirect的区别、JSP中的INCLUDE、应用服务器、数据连接池、JSP的内置对象、JSP指令、Servlet的生命周期等知识点。 一、forward和redirect的...

    重定向和转发的区别

    在Web开发中,经常需要用到重定向(Redirect)与转发(Forward)这两种控制页面跳转的技术。尽管它们都能实现页面之间的跳转,但在具体的应用场景和技术实现上却有着本质的不同。下面将从多个角度来详细阐述两者的...

    转发和重定向的区别

    在Web开发中,"转发"(Forward)和"重定向"(Redirect)是两种常见的页面跳转方式,它们虽然在效果上看似相似,但其实有着本质的区别。理解这两种技术的工作原理及其应用场景对于优化应用程序的性能和用户体验至关...

    Java面试题完整版(含参考答案).doc

    以下是基于题目提供的内容,对Java抽象类与接口、EJB与JavaBean的区别以及Servlet API中forward()与redirect()方法的差异的详细解析。 1. 抽象类与接口 抽象类和接口都是Java中实现抽象化的方式,但它们有着本质的...

    j2ee面试

    `forward`和`redirect`都是Servlet中用于页面跳转的机制,但它们有本质区别: - `forward`是在服务器内部进行的跳转,只发生一次请求,且可以共享请求属性。 - `redirect`是客户端重定向,发生两次请求,第二次请求...

    重定向与转发

    它们之间有着本质的区别,但它们都是实现页面跳转和数据传递的重要手段。 一、转发(Forward) 转发是指将请求从一个 Web 组件传递给另一个 Web 组件,以便继续处理请求。转发的过程中,两个 Web 组件共享同一个 ...

    jsp页面跳转

    `<jsp:forward>` 标签本质上是调用 `RequestDispatcher.forward()` 来完成页面跳转的。该标签会将当前请求转发到指定的JSP页面,保持请求数据的完整性。 **应用场景:** - 当需要简化代码实现,提高可读性时。 - ...

    request的转发与response的重定向有什么区别

    - **转发(Forward)**:在转发过程中,服务器直接处理请求并调用内部资源,如JSP页面,而浏览器的URL不会改变。用户看不到中间的转发过程,只会看到最初的请求URL。 - **重定向(Redirect)**:重定向时,服务器...

    华为公司面试题目宝典

    **Forward**和**Redirect**都是用于在Servlet中跳转到另一个页面的方法,但它们之间存在本质区别。Forward是在服务器内部进行的页面跳转,不改变URL,且可以传递请求参数;而Redirect则通过发送一个新的HTTP请求来...

    知名企业java高级工程师面试题附答案

    #### forward与redirect的区别 - **forward**:服务器端内部转发,客户端地址栏不变,可以传递请求参数。 - **redirect**:服务器重定向,客户端地址栏改变,不能直接通过请求对象传递参数。 #### Static变量含义 ...

    j2ee考试资料,学校考试时的复习资料

    6. **forward()与redirect()的区别** - `forward()`:只在服务器内部进行控制权的转向,不会改变客户端浏览器地址栏中的URL。 - `redirect()`:会使客户端重新发起一个请求,因此地址栏中的URL会发生变化。 7. *...

    Java面试题全集(中)

    在Web应用中,转发(forward)和重定向(redirect)是两种常见的页面跳转方式。转发是服务器内部操作,客户端不知道目标地址的变化,地址栏不会显示新地址;而重定向是服务器发送指令让客户端浏览器去访问新的地址,...

    最新Java面试宝典pdf版

    6、SERVLET API中forward() 与redirect()的区别? 86 7、什么情况下调用doGet()和doPost()? 86 8、Request对象的主要方法: 87 9、forward 和redirect的区别 87 10、request.getAttribute() 和 request....

    java面试题

    forward和redirect的区别? 答:forward是转发,浏览器跳转后不显示新的地址。 redirect是重定向,浏览器跳转后显示新的地址。 对比之下forward更加高效,并且它有助于隐藏实际地址,但是有些情况则必须使用...

Global site tag (gtag.js) - Google Analytics