gpt4 book ai didi

java - GWT 默认请求传输 : when/why to extend?

转载 作者:行者123 更新时间:2023-12-01 23:23:26 25 4
gpt4 key购买 nike

我看过几个 GWT 代码摘录,其中开发人员扩展了 DefaultRequestTransport并赋予它自定义功能。 this SO question regarding authentication/login filters 就是这样一个例子。 。但除了这个例子之外,我还见过其他几个例子。

我的问题:何时以及为什么有人需要扩展此类并重写其方法? (换句话说,这个类是做什么的,它的方法执行什么服务,以及为什么我需要自定义它们?)

在该示例中,createRequestCallback 方法被重写。根据该方法的 Javadocs,其目的是:

Create a RequestCallback that maps the HTTP response onto the TransportReceiver interface.

这对我来说仍然是一个神秘的解释。有人可以给我一个外行人的解释,说明什么情况下扩展这个类并重写它的 1+ 个方法是有益的吗?

最佳答案

RequestFactory 不依赖于特定的“传输”机制;它处理请求和响应的 JSON 表示,但它们的交换和传输方式超出范围,并推迟到 RequestTransport .

DefaultRequestTransport使用 RequestBuilder到给定的(但可配置的)URL;因为它使用RequestBuilder ,它只能在 GWT 客户端中使用(要编译为 JavaScript)。还有UrlRequestTransport它使用 java.net.HttpURLConnection并且可以在 JVM 中运行的任何客户端上使用(调用另一台服务器的服务器、Android 应用程序、桌面 Java 应用程序等)

理论上(因为我从未尝试过,也从未听别人尝试过),你可以制作一个 RequestTransport使用 Comet 或 WebSockets,或您想要的任何传输方式。当然,服务器端也必须进行调整( SimpleRequestProcessor 可以在 RequestFactoryServlet 之外轻松地重用;这是类似的关注点分离)

返回DefaultRequestTransport :它使用 RequestBuilder并提供了一些钩子(Hook),您可以覆盖它们以自定义其工作方式。最常见的用例是在解码 JSON 编码的 RequestFactory 响应之前拦截所有请求以添加一些请求 header (例如凭据)和/或所有响应以处理特定 HTTP 响应(例如拦截“未经授权”响应以要求用户登录)。
DefaultRequestTransport作为 RequestFactory API 和 RequestBuilder 之间的适配器一,和createRequestCallback其中一半负责调整响应。

关于java - GWT 默认请求传输 : when/why to extend?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20351286/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com