Java 如何替换特定的'&';在URL字符串中进行解析
URL字符串可以是非常动态的。 它可以有任意数量和参数组合。 例如:Java 如何替换特定的'&';在URL字符串中进行解析,java,parsing,url,ampersand,Java,Parsing,Url,Ampersand,URL字符串可以是非常动态的。 它可以有任意数量和参数组合。 例如: myHost?parm1=Data1&parm2=Data2&parm3=Data3 myHost?parm1=Data1&1b&parm2=Data2&2b&parm3=Data3&3b 在这种情况下,大多数解析例程都可以很好地实现,但是如果数据本身包含一个“&”呢。 例如: myHost?parm1=Data1&parm2=Data2&
myHost?parm1=Data1&parm2=Data2&parm3=Data3
myHost?parm1=Data1&1b&parm2=Data2&2b&parm3=Data3&3b
在这种情况下,大多数解析例程都可以很好地实现,但是如果数据本身包含一个“&”呢。
例如:
myHost?parm1=Data1&parm2=Data2&parm3=Data3
myHost?parm1=Data1&1b&parm2=Data2&2b&parm3=Data3&3b
使用StringTokenizer或URLEncoder是一个全有或全无的过程。
由于参数名称可能不同,因此不能将其用作搜索的一部分。
名称-值对需要分解,包含“&”的数据需要保留为:
parm1=Data1&1b
parm2=Data2&2b
parm3=Data3&3b
在查询字符串值中,任何关于实现的Java建议?
&
都应该进行百分比编码,如%26
。在您的示例中,它们应该如下所示:
parm1=Data1%261b
parm2=Data2%262b
parm3=Data3%263b
因此,只需通过&
,就可以轻松拆分正确编码的URL
创建URL时,客户端程序必须对每个参数值进行URL编码。然后通过
=
连接键和(编码的)值来格式化URL,并通过&
连接键值对列表。如果客户端程序没有对参数值进行URL编码,那么服务器程序将无法将嵌入的&
与查询字符串中的值分隔符&
&
区分开来,因为%26
。在您的示例中,它们应该如下所示:
parm1=Data1%261b
parm2=Data2%262b
parm3=Data3%263b
因此,只需通过&
,就可以轻松拆分正确编码的URL
创建URL时,客户端程序必须对每个参数值进行URL编码。然后通过
=
连接键和(编码的)值来格式化URL,并通过&
连接键值对列表。如果客户端程序没有对参数值进行URL编码,那么服务器程序将无法区分嵌入的&
和值分隔符&
在Java中有一个为您编码URL的实用程序(Java.net.URLEncoder),它应该负责替换符号。与你的帖子相似
此外,您还可以阅读一些关于url编码的建议。Java中有一个为您编码url的实用程序(Java.net.URLEncoder),它应该注意替换符号。
与你的帖子相似
而且,您可以阅读一些关于url编码的建议。这是否意味着当数据包含“&”时,用户需要自己输入%26,然后在url的其他位置使用“&”?客户机程序负责正确编码
&
我所看到的基本上是“全部”还是“无”编码的类型,当编码完成时,仍然无法区分数据中的“&”和分隔数据的“&”。创建URL时,客户端程序必须对每个参数值进行URL编码。然后通过=
连接键和(编码的)值来格式化URL,并通过&
连接键值对列表。如果客户端程序没有对参数值进行URL编码,那么服务器程序将无法将嵌入的&
与值分隔符&
区分开来。可能有1000个不同的参数。根据回复,您是否指示客户端应用程序跟踪所有1000多个参数,提取名称-值对,然后进行编码?这是否意味着当数据包含“&”,但在URL的其他位置使用“&”时,预期用户自己输入%26?客户机程序负责对&
进行适当编码。我看到的是,all基本上执行全有或全无类型的编码,并且在这种情况下完成后,仍然无法区分数据中的“&”和分隔数据的“&”。创建URL时,客户端程序必须对每个参数值进行URL编码。然后通过=
连接键和(编码的)值来格式化URL,并通过&
连接键值对列表。如果客户端程序没有对参数值进行URL编码,那么服务器程序将无法将嵌入的&
与值分隔符&
区分开来。可能有1000个不同的参数。根据回复,您是否指示客户端应用程序跟踪所有1000多个参数,提取名称-值对,然后进行编码?我看到了这个示例,除非我遗漏了将处理所有“&”符号而不仅仅是与数据关联的符号的内容。我看到了这个示例,除非我遗漏了将处理所有“&”符号而不仅仅是与数据关联的符号的内容。