2016-12-22 2 views
0

Ich habe eine URL abc.com/#cancel. In meinem Servlet muss ich #cancel für zukünftige Verwendung speichern. Ich habe bereits HttpServletRequest getRequestURI() und einige andere Optionen versucht. Aber sehen Sie diesen Wert nicht im Anfrageobjekt. Wie bekomme ich diesen Wert?Get Hash-Tag (#) Zeichen der URL in Servlet-Anfrage

In meiner Anwendung verwende ich GWT, die RPC-Aufrufe verwendet und RPC-Anfrage wird basierend auf dem Hash-Tag-Wert gemacht. zB: mydomain.com/#profile, leitet die Anfrage an profile.rpc weiter. In meinem Fall fange ich diesen Anruf mit einem Filter ab, der einige grundlegende Überprüfungen durchführt, und dann möchte ich die Anfrage erneut an mydomain.com/#profile weiterleiten. aber ich finde #profile im Anfrageobjekt nicht. Hoffe das erklärt meine Frage und was ich suche.

Antwort

1

request.getRequestURI() Willen gibt Ihnen die URL zB: abc.com/#cancel.

String url1=request.getRequestURI(); 

url1.split("/"); 
+0

Ich denke seine request.getRequestURI(), immer nicht # Wert in Anfrage-URI erhalten. Bereits in den gleichen Fragen erwähnt. Danke trotzdem –

+0

String completeURL = requestURL.toString(); Haben Sie dies versucht und arbeiten Sie in Servlets oder einem anderen Framework – priyadarshini

+0

In Servlets, herausgefunden, in Anfrage erhalten wir keine fragmentierte URL. Auch in requestURL erhalten Sie nur die vollständige URL und dann die fragmentierte URL (#part) –

0

Fand heraus, dass fragmentierte URL nicht Anforderung kommt in, wenn wir response.sedRedirect() tun, Browser, um das fragmentierte Teil von Browser-URL-Leiste nicht zu entfernen. Aber nicht sicher, wie das passiert. Wie auch immer, in meinem Fall, anstatt eine Anfrage an eine andere JSP zu senden und dann das Formular an eine andere URL zu senden, mache ich direkt response.sendRedirect(), was den fragmentierten Teil nicht entfernt, so dass es jetzt funktioniert :)