【发布时间】:2010-12-12 15:25:26
【问题描述】:
Java EE 有 ServletRequest.getParameterValues()。
在非 EE 平台上,URL.getQuery() 只返回一个字符串。
在 Java EE 上 not 时正确解析 URL 中的查询字符串的正常方法是什么?
尝试制作自己的解析器的答案很受欢迎。这是一个非常有趣且令人兴奋的微编码项目,但是我不能说这是个好主意。
下面的代码 sn-ps 通常有缺陷或损坏。打破它们对读者来说是一个有趣的练习。 以及攻击使用它们的网站的黑客。
解析查询字符串是一个定义明确的问题,但阅读规范并理解其中的细微差别并非易事。最好还是让一些平台库的程序员来替你做苦力,为你做修复!
【问题讨论】:
-
您能否发布一个示例 URL、您从
getQuery()获得的内容以及您想要作为输出获得的内容? -
您想从 servlet 还是 JSP 页面执行此操作?在我回答之前我需要澄清一下。
-
我正在尝试在 Android 上执行此操作,但所有平台上的所有答案都将是有用的答案,可能会提供指导(也给可能遇到此问题的其他人)所以不要退缩!
-
你还需要解析POST参数吗?
-
即使你在 J2EE 上(或者在 SE 上,像我一样通过 OSGi 添加了选定的 EE 包),这个问题也可能有意义。在我的例子中,查询字符串 / url 编码的 POST 正文由系统的一部分处理,该部分故意与
ServletRequest之类的东西无关。