Pergunta

Meu servidor java funciona da seguinte maneira:

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

O link acima não funcionará correctamente.No entanto, se eu quiser usar o "#", como parte da cadeia de caracteres de pesquisa, tudo dá errado.Por exemplo:

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

Por alguma razão tudo após o "#" é ignorado.Se eu usar o decodificado versão de "#" ele funciona muito bem novamente.Por exemplo:

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

O sistema deve ser utilizado por pessoas que não entendem a codificação de url para que nunca iria colocar %23 em vez de #.Existe uma maneira de contornar isso?

Foi útil?

Solução

o usuário supostamente não devem acessar a url diretamente, por isso, se eles colocam "c#" na url, não haveria processo, por outro lado, você pode usar

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

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

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

</form> 

com isso, ele vai cuidar de caracteres especiais como "#" que você mencionou.

não se esqueça de pegar o parâmetro no seu controlador,

request.getParamter("txtSearch");

Outras dicas

Diferente de codificação, não há nenhuma maneira em torno dela.Mais sobre a cadeia depois de # trata como a location da URL.

Cadeia depois de # não serão passados para o servidor através de parâmetros GET.Utilizar o método POST em vez disso.

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

Ele é o navegador.O servidor nunca fica um pedido com a hashtag (#) símbolo, apenas até o símbolo.

Um javascript solução é provavelmente uma má idéia.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top