【问题标题】:Does sendRedirect() happens at client side or at the server side?sendRedirect() 发生在客户端还是服务器端?
【发布时间】:2015-06-26 05:08:34
【问题描述】:

理论说 请求分发发生在服务器上,而重定向发生在 客户。

这不是servlet中使用的两种方法吗?然后两者都应该发生在服务器端。对?
还是我误解了什么是客户端/服务器端?
如果可以的话,请用一些例子给我清楚的解释。
谢谢你。

【问题讨论】:

    标签: jakarta-ee servlets client-side server-side requestdispatcher


    【解决方案1】:

    redirect 是服务器以 HTTP 响应头的方式发送给客户端的信号。

    HTTP 302 代码与服务器响应中的 location 标头一起使用。当客户端收到 302 时,它会使用 Location 标头指定的 URI 来触发新的请求。

    请求分发发生在服务器上,而重定向发生在 客户。

    所以重定向是由服务器发起的,但实际的重定向发生在客户端,因为客户端负责发送新请求。

    【讨论】:

    • 谢谢。说的太清楚了,不介意的可以稍微解释一下HTTP 302的代码吗?
    • @DiliniRathnayake 很高兴为您提供帮助。如果我的回答有帮助,请点击我的回答左侧的勾号接受它。接受答案有助于其他人面临同样的挑战。
    • 是的。抱歉耽搁了。
    【解决方案2】:

    它在客户端工作,因为它使用浏览器的 url 栏发出另一个请求。因此,它可以在服务器内部和外部工作。

    【讨论】:

    • 谢谢你。这很简单。 & 你能解释一下为什么 requestDispatcher 是服务器端的。
    • RequestDispatcher 对象可以将客户端的请求转发给资源,或者将资源本身包含在返回给客户端的响应中。资源可以是另一个 servlet、HTML 文件或 JSP 文件等。您还可以将 RequestDispatcher 对象视为位于给定路径的资源的包装器,该路径作为参数提供给 getRequestDispatcher 方法。
    猜你喜欢
    • 2010-09-19
    • 1970-01-01
    • 2010-09-29
    • 1970-01-01
    • 2015-11-04
    • 2018-06-06
    • 2016-08-22
    • 2020-07-18
    相关资源
    最近更新 更多