|
1
24
应该 被解码。如果是这样,那么您的Servlet容器就违反了规范(正如Wouter Coekaerts和Francois Gravel正确指出的那样)。您正在运行哪个Tomcat版本? 更令人困惑的是,当前的Tomcat版本拒绝包含某些特殊字符编码的路径, for security reasons . |
|
|
2
2
如果有
自从
|
|
|
3
1
|
|
|
4
0
url.substring(startLength,url.length-endLength); |
|
|
5
-1
这个答案最初错误地指出路径中的“/”和“%2F”应始终被视为相同。它们实际上是不同的,因为路径是由/-分隔的段组成的列表。 您不必在中区分编码字符和非编码字符
第三个案子处理得不太好。如果你想区分两个路径段的分隔符“/”和路径段(%2F)内的“/”,那么你就不能一致地将路径表示为一个解码字符串。你可以将其表示为一种编码字符串(例如“foo/bar%2Fbaz”),也可以将其表示为解码段列表(例如“foo”、“bar/baz”)。
对于普通的web应用程序来说,这很好。如果你在极少数情况下真的需要有所作为,你可以自己解析网址,用
|