当前位置: 首页 > 面试题库 >

使用JAX-RS的不区分大小写的URL

诸葛彦
2023-03-14
问题内容

有没有简单的方法可以在JAX-RS Web服务中提供不区分大小写的URL?其目的是产生一个“宽容的接受者”的网络服务。1个

我想有可能使用包含.to[Lower|Upper]Case()所有传入URL
的过滤器来执行此操作。不幸的是,此实现要求程序员严格遵守/保持一致,以确保应用程序中 所有 硬编码的URL字符串均严格使用小写。
另外,我还不知道servlet过滤器的JAX-RS类似物。

如果有关系,我将Jersey作为我的JAX-RS实现。

1如 “宽容所接受,严格生产” (记不清出处)


问题答案:

答案是否定的,因为基本上根据RFC 3986的 URI 区分大小写:

6.2.2.1。案例规范化

对于所有URI,百分比编码三元组内的十六进制数字(例如,“%3a”与“%3A”)不区分大小写,因此应归一化以将大写字母用于数字AF。

当URI使用通用语法的组件时,组件语法等效规则始终适用;也就是说,方案和主机不区分大小写,因此应规范化为小写。例如,URI等效于http://www.example.com/。除非该方案另有明确定义,否则其他通用语法组件均假定为区分大小写的(请参见第6.2.3节)。

如果仍然要使它们不区分大小写,则可以使用servlet过滤器并将其放在JAX-RS框架的前面。您仍然需要在应用程序中保持一致。

如果您考虑从Jersey切换到Apache
Wink
,则可以使用动态资源来确保所有URL都是小写/大写。因此,将Servlet过滤器与动态资源结合起来可以成为这种情况的完整解决方案。



 类似资料:
  • 问题内容: 我正在尝试提出一个要求区分大小写的结果的请求。 例如在我的数据库中 该请求是 但我有3行作为结果,我只想要abcdef 我试图找到一个解决方案 但是我有这个错误: 未知归类:’Latin1_General_CS_AS’{“成功”:false,“错误”:“#1273-未知归类:’Latin1_General_CS_AS’”} 谢谢 问题答案: 感谢您的帮助,我找到了不是latin1 ut

  • 问题内容: 我有一个Lucene索引,该索引当前区分大小写。我想添加的 选项 有不区分大小写作为后备的。这意味着与案例匹配的结果将获得更大的权重,并且将首先出现。例如,如果结果数限制为10,并且有10个匹配项符合我的情况,那就足够了。如果仅找到7个结果,则可以从不区分大小写的搜索中再添加3个结果。 我的案子实际上更复杂,因为我有不同重量的物品。理想情况下,匹配“错误”的表壳会增加一些重量。不用说,

  • 问题内容: 我正在将Java应用程序的ORM的Hibernate用于Oracle数据库(并不是数据库供应商很重要,有一天我们可能会切换到另一个数据库),我想根据用户提供的字符串从数据库中检索对象。例如,在搜索人员时,如果用户正在寻找居住在“ fran”中的人员,我希望能够将其人员提供给旧金山。 SQL不是我的强项,我更喜欢Hibernate的构建代码,而不是硬编码的字符串。谁能指出正确的方向,说明

  • 对于报告(0.1%的所有查询),我需要返回一个所有可能类别的列表,区分大小写! 考虑以下文件: 运行以下查询: 返回: 是否有方法返回区分大小写的类别(存储在文档中)?我对此查询结果中的感兴趣。 Elasticsearch论坛中的问题 谢谢,伊泰

  • 问题内容: 我希望我的字典不区分大小写。 我有以下示例代码: 输出=练习更改颜色 我想要另一个字符串,(以大写字母开头)也给出相同的输出。 我相信有一种使用转换为小写字母的通用方法, 但是我不确定如何将其最好地集成到我的现有代码中。(如果无论如何这将是一种合理,简单的方法)。 问题答案: 如果我对您的理解正确,并且希望以一种不区分大小写的方式键入字典的键,则一种方法是将dict子类化并重载sett