Question

My java server works as follows:

http://locahost:5555/?search="java"

The above link would work fine. However, if I ever want to use "#" as part of search string, it all goes wrong. For example:

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

For some reason everything after "#" gets ignored. If I use the decoded version of "#" it works fine again. For example:

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

The system should be used by people that don't understand url encoding so they would never put %23 instead of #. Is there anyway around it?

Was it helpful?

Solution

the user supposedly should not access the url directly so if they put "c#" in the url there would be no process on the other hand you could use

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

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

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

</form> 

with this, it will take care of the special characters like "#" you mentioned.

don't forget to catch the parameter in your controller

request.getParamter("txtSearch");

OTHER TIPS

Other than encoding it there is no way around it. More over the string after # treats as the location of the URL.

String after # will not be passed to the server through GET parameters. Use POST method instead.

https://developer.mozilla.org/en-US/docs/Web/API/Window.location

It is in the browser. The server never gets a request with the hashtag (#) symbol, just up to the symbol.

A javascript workaround is probably a bad idea.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top