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

java.net.URI仅针对查询字符串进行解析

阴雪风
2023-03-14
问题内容

我正在尝试使用JDK
java.net.URI构建URI

我想附加一个绝对URI对象,一个查询(在String中)。例如:

URI base = new URI("http://example.com/something/more/long");
String queryString = "query=http://local:282/rand&action=aaaa";
URI query = new URI(null, null, null, queryString, null);
URI result = base.resolve(query);

理论(或我的想法)是决心应该返回:

http://example.com/something/more/long?query=http://local:282/rand&action=aaaa

但是我得到的是:

 http://example.com/something/more/?query=http://local:282/rand&action=aaaa

为什么#resolve()
“吃掉”最后一条路?如果新的URI(query)构建为:

URI query = new URI(null, null, base.getPath(), queryString, null);

效果很好。


问题答案:

我想回应一下自己。Javadoc确实可以正确解释。如URI#resolve()所述,在第3.b节中:

否则,给定URI的路径是相对的,因此通过将给定URI的路径与该URI的路径进行解析来计算新URI的路径。这是通过以下方式完成的:将该URI路径的除最后一段以外的所有段(如果有的话)与给定URI的路径连接起来,然后对结果进行归一化,就好像调用了normalize方法一样。

所以....我没有正确阅读。我应该删除此回复吗?还是让它自己回应?



 类似资料:
  • 本文向大家介绍MySQL查询以字符串字段中的数字字符对行进行分组?,包括了MySQL查询以字符串字段中的数字字符对行进行分组?的使用技巧和注意事项,需要的朋友参考一下 为此,您可以在+运算符的帮助下将0与字符串字段连接起来。这里的场景就像我们需要从字符串字段“ 9844Bob ”中获取数字“ 9844 ”。 让我们首先创建一个表- 使用插入命令在表中插入一些记录- 使用select语句显示表中的所

  • 本文向大家介绍Java对字符串进行加密解密,包括了Java对字符串进行加密解密的使用技巧和注意事项,需要的朋友参考一下 要求:    *  对用户输入的每个字符的值进行加密,将解密后的字符串输出    *  对用户输入的已加密字符串进行解密并输出 实现代码: 运行结果: *加密过程: 请输入一个英文字符串或揭秘字符串: I Love You 加密或者解密之后的结果如下: 乩一乬乏乖久一乹乏乕 *解

  • 问题内容: Java EE具有ServletRequest.getParameterValues()。 在非EE平台上,URL.getQuery()仅返回一个字符串。 当不在 Java EE上时,正常解析URL中的查询字符串的正常方法是什么? < rant > 尝试创建自己的解析器的答案很流行。这是一个非常有趣且令人兴奋的微编码项目,但我不能说这是一个好主意 :( 以下代码片段通常有缺陷或损坏,顺

  • 问题内容: 在此“ Hello World”示例中: 如何从查询字符串中获取参数? 他们在文档中提到: 但是我不知道如何使用它。有人可以解释吗? 问题答案: 您可以使用从方法URL模块在请求回调。 我建议您阅读HTTP模块文档,以了解回调函数。您还应该看看http://howtonode.org/之类的网站,并检查Express框架以更快地开始使用Node。

  • 问题内容: 我有这样的数据: 我期望的输出是 我想在SQL中实现它。 问题答案: 首先创建这个 现在使用 as SQL字段 我希望这可以解决您的问题。

  • 问题内容: 是否有任何JavaScript库可以根据查询字符串,样式生成字典? 可以像这样使用的东西: “查询字符串”是否在.NET领域之外称为其他名称?为什么不分解为键/值集合? 编辑:我已经编写了自己的函数,但是任何主要的库都可以这样做吗? 问题答案: 是否有任何JavaScript库可以根据查询字符串,样式生成字典? 可以像这样使用的东西: “查询字符串”是否在.NET领域之外称为其他名称?