题
我的java服务器工作如下:
http://locahost:5555/?search="java"
.
上面的链接将正常工作。但是,如果我想用“#”作为搜索字符串的一部分,这一切都出错了。例如:
http://locahost:5555/?search="c#"
.
出于某种原因,“#”忽略后一切。如果我使用“#”的解码版本,它再次正常工作。例如:
http://locahost:5555/?search="c%23"
.
系统应该由不了解URL编码的人使用,以便他们永远不会放入%23而不是#。无论如何它都在吗?
解决方案
用户据说不应该直接访问URL,所以如果他们在URL中放置“C#”,则另一方面将没有任何过程,您可以使用
<form action="yourcontroller" method="post">
<input type="text" name="txtSearch" />
<input type="submit" value="search"/>
</form>
.
有了这个,它将照顾你提到的“#”这样的特殊字符。
别忘了在控制器中捕获参数
request.getParamter("txtSearch");
. 其他提示
除了编码它,它还没有办法。#
之后的字符串更加符合URL的location
。
字符串后,#
后不会通过获取参数传递给服务器。使用Post方法。
https://developer.mozilla.org/en-US / DOCS / Web / API / Window.Location
它在浏览器中。服务器永远不会通过hashtag(#)符号的请求,恰好到符号。
javascript解决方法可能是一个坏主意。
不隶属于 StackOverflow