ClientRequestFilter 与 ContainerRequestFilter

2024-02-22

我知道过滤器用于处理请求,并且可以使用 http 标头和 httpmethods 执行操作,但我很困惑

有什么区别ClientRequestFilter and ContainerRequestFilter? 什么场景下我们必须使用ClientRequestFilter and ContainerRequestFilter?

我尝试过这个网站 https://jersey.java.net/documentation/latest/filters-and-interceptors.html#d0e6547但没有任何关于此的细节。

请帮助我理解这一点。


REST 交互有两个方面:客户端和服务器。 Jersey/JAX-RS-2 有客户端 API 和“主”服务器端 API。当使用客户端 API 时,我们可以使用ClientRequestFilter,当使用服务器端 API 时,我们将使用ContainerRequestFilter。不可能混合和匹配这些,它们应该严格地与​​交互的适当方面一起使用。

A ContainerRequestFilter(服务器端)示例是进行一些授权/身份验证,这是服务器端过滤器的一个非常常见的用例。过滤器将在到达您的任何资源之前被调用

Client --->  Internet ---> Server ---> Filter ---> Resource

A ClientRequestFilter(客户端)示例将实现一些客户端缓存(有点模拟浏览器缓存)。或者一个案例(已经实现)是一个过滤器,用于对 BASIC 身份验证的用户名和密码进行编码。在请求实际发送到服务器之前,将调用客户端过滤器。

Client ---> Filter ---> Internet ---> Server ---> Resource

还有XxxResponseFilters遵循以下流程

Resource ---> ContainerResponseFilter ---> Server ---> Internet ---> Client

Server ---> Internet ---> ClientResponseFilter ---> Client
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ClientRequestFilter 与 ContainerRequestFilter 的相关文章

  • 如果测试用例失败,Selenium Web 驱动程序无法关闭 Firefox 实例

    我各位 我正在使用 junit 和 selenium web 驱动程序 2 28 问题是 如果我运行成功的测试用例 Web 驱动器能够关闭 Firefox 实例 但是当测试用例失败时 Selenium Web 驱动器无法关闭 Firefox
  • JavaMail Gmail 问题。 “准备启动 TLS”然后失败

    mailServerProperties System getProperties mailServerProperties put mail smtp port 587 mailServerProperties put mail smtp
  • 如何将 Java 赋值表达式转换为 Kotlin

    java中的一些东西就像 int a 1 b 2 c 1 if a b c System out print true 现在它应该转换为 kotlin 就像 var a Int 1 var b Int 2 var c Int 1 if a
  • 如何测试 JUnit 测试的 Comparator?

    我需要测试 Compare 方法 但我对如何测试感到困惑 我可以看看该怎么做吗 public class MemberComparator implements Comparator
  • Android Studio 在编译时未检测到支持库

    由于 Android Studio 将成为 Android 开发的默认 IDE 因此我决定将现有项目迁移到 Android studio 中 项目结构似乎不同 我的项目中的文件夹层次结构如下 Complete Project gt idea
  • 解决错误:日志已在具有多个实例的atomikos中使用

    我仅在使用atomikos的实时服务器上遇到问题 在我的本地服务器上它工作得很好 我在服务器上面临的问题是 init 中出错 日志已在使用中 完整的异常堆栈跟踪 java lang RuntimeException Log already
  • java.io.IOException: %1 不是有效的 Win32 应用程序

    我正在尝试对 XML 文档进行数字签名 为此我有两个选择 有一个由爱沙尼亚认证中心为程序员创建的库 还有一个由银行制作的运行 Java 代码的脚本 如果使用官方 认证中心 库 那么一切都会像魅力一样进行一些调整 但是当涉及到银行脚本时 它会
  • 使用 ANTLR 为 java 源代码生成抽象语法树

    如何使用 ANTLR 从 java src 代码生成 AST 有什么帮助吗 好的 步骤如下 前往ANTLR站点 http www antlr org 并下载最新版本 下载Java g和JavaTreeParser g文件来自here htt
  • java中删除字符串中的特殊字符?

    如何删除字符串中除 之外的特殊字符 现在我用 replaceAll w s 它删除了所有特殊字符 但我想保留 谁能告诉我我该怎么办 Use replaceAll w s 我所做的是将下划线和连字符添加到正则表达式中 我添加了一个 连字符之前
  • 如何为 Gson 编写自定义 JSON 反序列化器?

    我有一个 Java 类 用户 public class User int id String name Timestamp updateDate 我收到一个包含来自 Web 服务的用户对象的 JSON 列表 id 1 name Jonas
  • Microsoft Graph 身份验证 - 委派权限

    我可以使用 Microsoft Graph 访问资源无需用户即可访问 https developer microsoft com en us graph docs concepts auth v2 service 但是 此方法不允许我访问需
  • 无法理解 Java 地图条目集

    我正在看一个 java 刽子手游戏 https github com leleah EvilHangman blob master EvilHangman java https github com leleah EvilHangman b
  • Clip 在 Java 中播放 WAV 文件时出现严重延迟

    我编写了一段代码来读取 WAV 文件 大小约为 80 mb 并播放该文件 问题是声音播放效果很差 极度滞后 你能告诉我有什么问题吗 这是我的代码 我称之为doPlayJframe 构造函数内的函数 private void doPlay f
  • Java直接内存:在自定义类中使用sun.misc.Cleaner

    在 Java 中 NIO 直接缓冲区分配的内存通过以下方式释放 sun misc Cleaner实例 一些比对象终结更有效的特殊幻像引用 这种清洁器机制是否仅针对直接缓冲区子类硬编码在 JVM 中 或者是否也可以在自定义组件中使用清洁器 例
  • 使用 Flyway 和 Hibernate 的 hbm2ddl 在应用程序的生命周期中管理数据库模式

    我正在开发 Spring Hibernate MySql 应用程序 该应用程序尚未投入生产 我目前使用 Hibernatehbm2ddl该功能对于管理域上的更改非常方便 我也打算用Flyway用于数据库迁移 在未来的某个时候 该应用程序将首
  • Windows 上的 Nifi 命令

    在我当前的项目中 我一直在Windows操作系统上使用apache nifi 我已经提取了nifi 0 7 0 bin zip文件输入C 现在 当我跑步时 bin run nifi bat as 管理员我在命令行上看到以下消息 但无法运行
  • 从 ASP .Net Web 服务访问 MSMQ 时出现权限错误

    我写了一个从消息队列读取的 Web 服务 这在卡西尼号下工作得很好 现在我已经在 IIS 下部署了该服务 当该服务尝试访问队列时 我收到一条错误消息 队列不存在或者您没有足够的权限来执行该操作 我已将 IIS 虚拟目录上的匿名访问用户设置为
  • JAVA - 如何从扫描仪读取文件中检测到“\n”字符

    第一次海报 我在读取文本文件的扫描仪中读取返回字符时遇到问题 正在读取的文本文件如下所示 test txt start 2 0 30 30 1 1 90 30 0 test txt end 第一行 2 表示两个点 第二行 位置索引 0 xp
  • java8 Collectors.toMap() 限制?

    我正在尝试使用java8Collectors toMap on a Stream of ZipEntry 这可能不是最好的想法 因为在处理过程中可能会发生异常 但我想这应该是可能的 我现在收到一个我不明白的编译错误 我猜是类型推理引擎 这是
  • Jackson 将单个项目反序列化到列表中

    我正在尝试使用一项服务 该服务为我提供了一个带有数组字段的实体 id 23233 items name item 1 name item 2 但是 当数组包含单个项目时 将返回该项目本身 而不是包含一个元素的数组 id 43567 item

随机推荐

  • React Native - 垂直对齐图像,调整大小模式“包含”

    当图像具有 包含 调整大小模式时 它似乎在中心对齐 对齐实际图像 但图像内容在 Flex 启动时对齐 对齐
  • Socket.io 检测客户端何时断开连接

    我正在编写一个应用程序 当用户访问我的站点时 我打开一个套接字 当用户位于站点上时通过套接字发送数据来记录信息 并在用户离开站点时将信息存储在数据库中 我当前面临的问题是 虽然我可以检测到套接字何时与服务器断开连接 但我不知道哪个套接字对应
  • XML 到 C# 类中的 StackOverflowException

    我正在尝试基于以下 XML 代码在 C 中创建一个类
  • dbo.数据库对象名称中的前缀,我可以忽略它吗?

    我正在寻找一个高性能的默认策略来处理 dbo 前缀 我意识到 dbo 前缀不仅仅是语法噪音 但是我在过去 8 年的基于 MS 的开发中跳过了 dbo 的输入 前缀并忽略其功能 除了存储过程编译锁的性能问题之外 在 SQL 查询和存储过程中跳
  • 如何将必要的文件包含到独立客户端项目的输出中?

    我的解决方案包括 Client 启动项目 UI层 依赖于取决于 App App 库 应用层 汇编器 依赖于取决于 Lib1 Lib1 库 业务逻辑层 需要特定文件才能正常工作 ThirdParty dll 我已经添加ThirdParty d
  • SQL Server CE数据库大小问题

    我有一份来自一家倒闭公司的申请 它似乎使用 SQL Server CE 数据库 我搜遍了系统也没找到 sdf文件 看来数据库已经变得太大了 知道如何找到数据库并更改最大大小吗 错误信息 无法记录应用程序启动 System Data Enti
  • 最长公共子序列:为什么这是错误的?

    int lcs char A char B int m strlen A int n strlen B int X malloc m sizeof int int Y malloc n sizeof int int i int j for
  • 将 MVC 2 升级到 MVC 3 视图问题

    我正在尝试将现有的 ASP net MVC 2 Web 应用程序升级到 MVC 3 这样我就可以使用 Razor Viewengine 等的优点said http weblogs asp net scottgu archive 2010 0
  • 如何在Python中使图像适合标签

    所以在 python 中我有一个用于显示图像的标签 但图像相当大 超出了标签的大小 有没有办法加载图像以适合标签而不调整它们的大小 这就是我现在所做的 labelWidth top winfo screenwidth labelHeight
  • Railsauthenticate_or_request_with_http_basic

    在我的 RoR 应用程序中 我需要使用基本身份验证来保护页面 并且我希望每次用户链接到该页面时都会询问凭据 所以我在操作之前添加了一个过滤器 如下所示 before filter request confirm only gt delete
  • 在react-js中播放声音

    我尝试在react js 上播放声音 但无法启动 在获取 InitialState 之前 我在 ReactClass 中初始化了声音变量 var App React createClass audio new Audio files aud
  • 在 Android 中创建选项菜单

    我正在尝试在 android 中制作一个选项菜单 如下链接http developer android com guide topics ui menus html options menu http developer android c
  • 根据数据库结果设置 Yii2 catchAll 路由

  • vh 中的最小高度与身体的百分比?

    我试图理解代码 为什么需要指定 body body position relative overflow hidden min height 100vh 将 html 设置为 min height 100vh html height 100
  • 在 powershell 中将新的键值对添加到 JSON 文件。

    我有一个现有的 JSON 文件 其中包含以下内容 buildDate 2017 08 16 version v1 2 0 如何将新的键值对添加到现有的 JSON 文件中 例如 我想采用上面的 JSON 并最终得到以下结果 buildDate
  • Rollup ESM 生成损坏的导入

    我想将 typescript React App 作为组件捆绑到 ES 模块或 UMD 中 但是生成的 ES 包会产生无效的模块 js 在捆绑包上它给了我这个提示 但我找不到任何解决方案 Missing global variable na
  • 使用 Sharepoint 2013 REST Api / CSOM 检索发布图像字段

    我们使用 Sharepoint 2013 REST API 从 Sharepoint 获取所有新闻项目 我们制作了一个自定义 ContentType Newsitem 具有多个属性 包括发布图像字段 var contentTypeId 0x
  • 使用 expo go 保持 firebase 登录的最佳方法

    我正在尝试使用 React Native 制作一个应用程序Expo Go 已经成功让谷歌登录工作 一切都很好 不幸的是 用户的登录在应用程序重新启动之间不会保留 起初 我认为这是一个异步存储问题 但我可以在重新启动之间将项目保存在存储中 我
  • ORA-01735: 无效的 ALTER TABLE 选项 - Toad

    当我在 Toad 中执行下面的 SQL 时 它会抛出 ORA 01735 无效的 ALTER TABLE 选项 ALTER TABLE CALCULATE ADD CAL METHOD VARCHAR2 50 REMARKS VARCHAR
  • ClientRequestFilter 与 ContainerRequestFilter

    我知道过滤器用于处理请求 并且可以使用 http 标头和 httpmethods 执行操作 但我很困惑 有什么区别ClientRequestFilter and ContainerRequestFilter 什么场景下我们必须使用Clien