用于常见URL / URI操作的标准Java类

这个问题几乎肯定在之前被问过,但无论如何我都会问它,因为我找不到答案。

通常,是否有某种实用程序类可以帮助进行与URL / URI相关的常见字符串操作?

我正在考虑类似Java SE的URL类,但可能更强一些。 我正在寻找能让你做简单事情的东西,比如:

  • 获取查询字符串参数列表
  • 用于添加查询字符串参数的“addParameter”方法,它将在必要时添加“&”,“?”和“=”
  • 此外,编码参数值将是理想的……

让我知道,谢谢!

没有(奇怪的)任何标准都可以做到这一点。 有一些零碎的东西,通常埋在各种util包中:

我已经使用http://java.net/projects/urlencodedquerystring/pages/Home来获得不错的效果(用于提取参数)。

Atlassian的JIRA有http://docs.atlassian.com/jira/4.2/index.html?com/atlassian/jira/util/UrlBuilder.html ,我实际上从jar中提取并使用了它。

在Android上, http://developer.android.com/reference/android/net/Uri.Builder.html是一个Uri构建器,在构建URL方面非常有效。

最后,在一个历史重演的经典案例中: 一个很好的库,用于在Java中执行URL查询字符串操作 。

我真的只是撕掉了android.net.Uri.Builder类并将它与urlencodedquerystring类配对,然后随身携带它们,但这似乎是Apache commons包的一个很好的候选者。

我个人喜欢来自jax-rs的UriBuilder

这不直接回答OP的问题( 它不是一个通用的,全面的URL操作库), 但是 :如果你还是要使用Spring,你可以考虑一下ServletUriComponentsBuilderUriComponentsBuilder类(见这里和这里是javadocs)。

我相信它们与spring-web依赖捆绑在一起。 恕我直言,这些提供了很多方便的实用工具方法来处理URI,URL和查询参数。