Java 使用URL中的#作为值键

Java 使用URL中的#作为值键,java,url,java-server,Java,Url,Java Server,我的java服务器的工作原理如下: http://locahost:5555/?search="java" 上面的链接可以正常工作。但是,如果我想使用“#”作为搜索字符串的一部分,那么一切都会出错。例如: http://locahost:5555/?search="c#" http://locahost:5555/?search="c%23" 由于某种原因,“#”之后的所有内容都会被忽略。如果我使用“#”的解码版本,它会再次正常工作。例如: http://locahost:5555/?se

我的java服务器的工作原理如下:

http://locahost:5555/?search="java"
上面的链接可以正常工作。但是,如果我想使用“#”作为搜索字符串的一部分,那么一切都会出错。例如:

http://locahost:5555/?search="c#"
http://locahost:5555/?search="c%23"
由于某种原因,“#”之后的所有内容都会被忽略。如果我使用“#”的解码版本,它会再次正常工作。例如:

http://locahost:5555/?search="c#"
http://locahost:5555/?search="c%23"

不懂url编码的人应该使用该系统,这样他们就永远不会使用%23而不是#。它周围还有其他东西吗?

除了对它进行编码之外,没有其他方法可以绕过它。
#
后面的字符串的更多信息将被视为URL的
位置

#
之后的字符串将不会通过GET参数传递给服务器。使用POST方法代替


除了对其进行编码之外,没有其他方法可以绕过它。
#
后面的字符串的更多信息将被视为URL的
位置

#
之后的字符串将不会通过GET参数传递给服务器。使用POST方法代替


它在浏览器中。服务器永远不会收到带有hashtag(#)符号的请求,直到符号为止


javascript解决方案可能是个坏主意。

它在浏览器中。服务器永远不会收到带有hashtag(#)符号的请求,直到符号为止


javascript解决方案可能是一个坏主意。

用户不应该直接访问url,因此如果他们在url中添加“c”,那么在另一方面,您将无法使用任何进程

<form action="yourcontroller" method="post">

   <input type="text" name="txtSearch" />

   <input type="submit" value="search"/>

</form> 

假定用户不应该直接访问url,因此如果他们在url中添加“c#”,则在另一方面,您将无法使用任何进程

<form action="yourcontroller" method="post">

   <input type="text" name="txtSearch" />

   <input type="submit" value="search"/>

</form> 

人们会直接在地址栏中写入url及其参数吗?如果没有,url是如何建立的?不了解url编码的人不应该使用浏览器地址栏搜索内容。他们应该在表单中填写输入字段,然后提交表单。表单将正确编码URL参数。@JBNizet,它只是一个测试服务器,但在工作中越来越流行,他们每天都使用它。所以我希望它能正常工作。@jbnite我的懒惰是没有界限的你可以参考我下面的答案。仅仅是几行代码,人们就可以直接在地址栏中编写url及其参数了吗?如果没有,url是如何建立的?不了解url编码的人不应该使用浏览器地址栏搜索内容。他们应该在表单中填写输入字段,然后提交表单。表单将正确编码URL参数。@JBNizet,它只是一个测试服务器,但在工作中越来越流行,他们每天都使用它。所以我希望它能正常工作。@jbnite我的懒惰是没有界限的你可以参考我下面的答案。这只是几行代码嗯,我明白了。谢谢你的信息。不管怎么说,这是一个远大的目标:)@nafas你是受欢迎的:)如果你觉得有帮助的话,就把它记下来作为答案。嗯,我明白了。谢谢你的信息。不管怎么说,这是一个远大的目标:)@nafas欢迎你:)如果你觉得它有帮助的话,就把它标记为答案。这可能是使它正常工作的最佳解决方案。这可能是使它正常工作的最佳解决方案。