我有GET请求被发送到weblogic 12c服务器,它携带用户信息,在服务器端我抓住这些 处理请求的信息。
GET请求如下所示:
?URL:/prem/JSP/xml/prems.jsp用户名= rjanga&安培;密码= 1234roh#&安培;地址= 3450Rivast&安培;城市= FT + COLLINS&安培;状态= CO&安培;邮编= 80526 强。 >
因为我的密码中有一个'#'符号weblogic服务器忽略了它后面的任何内容 它
它只会将网址视为 /prem/JSP/xml/prems.jsp?username=rjanga&password=1234roh(忽略符号'#'及其后面的所有字符串,如address,city..etc)
经过一些研究并经历this link后,我尝试了解决方案。
但它没有帮助,感谢任何帮助。
答案 0 :(得分:2)
您将不得不在密码字段上进行编码。将密码放在URL中是非常不安全的。你不应该这样做。也就是说,这里有一些信息:
来自http://java.sun.com/j2se/1.5.0/docs/api/java/net/URL.html:
URL类本身不会根据RFC2396中定义的转义机制对任何URL组件进行编码或解码。调用者负责编码任何字段,这些字段需要在调用URL之前进行转义,并且还要解码从URL返回的任何转义字段。此外,由于URL不知道URL转义,因此它无法识别相同URL的编码或解码形式之间的等效性。例如,两个网址:
http://foo.com/hello world/
和
http://foo.com/hello%20world
将被视为彼此不相等。
请注意,URI类在某些情况下会执行其组件字段的转义。管理URL编码和解码的推荐方法是使用URI,并使用toURI()和URI.toURL()在这两个类之间进行转换。
由您来编码和解码这些URL字符串。