Wartość Hash jest na kotwicy, więc jest tylko po stronie klienta, jest on często stosowany w po stronie klienta ram jak kanciasty do routingu po stronie klienta.
Kotwica NIE jest dostępna po stronie serwera.
W twoim przypadku nie potrzebujesz kotwicy, ale wartość parametru z # przerwą ciąg zapytania ma wartość "Dziennik transakcji # 459505".
EDIT Naiwne rozwiązanie, które nie działa, tylko niech to Ther dla historii, zobaczyć prawdziwą rozwiązanie poniżej
Rozwiązaniem jest do kodowania po stronie klienta i po stronie dekodowania serveur
Kodowanie w javascript
encodeURI("Transaction Log #459505")
//result value "Transaction%20Log%20#459505"
Decode w Javie
java.net.URLDecoder.decode("Transaction%20Log%20#459505");
//result "Transaction Log #459505"
EDIT : Ale: Javascript nie koduje w taki sam sposób jak Java Tak więc poprawną odpowiedzią (mam nadzieję) jest ręczne zastąpienie wszystkich # z% 23, następnie Java będzie ją dekodować normalnie lub użyć encodeURIC Component zgodnie z sugestiami w komentarzach. Dla twojej potrzeby zastąpienie rozwiązania wydaje się wystarczające.
Koduje w JavaScript:
encodeURI("yourUrl/Transaction Log #459505").replace(/#/,"%23")
//result: yourUrl/Transaction%20Log%20%23459505
dekodowania w Javie nie zmienia
java.net.URLDecoder.decode("Transaction%20Log%20#459505")
// result (java.lang.String) Transaction Log #459505
Przepraszam za długi post, nie widzę różnicy bettween Java i JavaScrip Url kodowania
Zobacz [to pytanie] (http://stackoverflow.com/questions/20280212/getting-the-full-url-include-the-query-string-after-hash) –