Benutzerdefinierte Fehlerseite - Ursprünglich angeforderte URL abrufen
Problem
Dies ist eine Fortsetzung der gestrigen (unbeantworteten) Frage (siehe hier) als ich versuche, einen alternativen Ansatz zu finden.
Ich habe das Basic hinzugefügt
<error-page>
<error-code>404</error-code>
<location>/404search.jsf</location>
</error-page>
..zu meinemweb.xml
. Ich muss jetzt die URL abrufen, die der Benutzer eingegeben hat, um meine Suchfunktion zu aktivieren. Es gelingt mir jedoch nur, die aktuelle URL abzurufen (in diesem Fall ...404search.jsf
) anstelle der eigentlichen Abfrage, die der Benutzer eingegeben hat.
Versuche
HttpServletRequest.getRequestURL
kehrt zurückhttp://www.website.com/foldername/404search.jsf
HttpServletRequest.getRequestURI
kehrt zurück/foldername/404search.jsf
HttpServletRequest.getQueryString
gibt gar nichts zurückIch möchte, dass es zurückkommt/foldername/wrong-url-the-user-entered#anchor-if-there-is-any
Einzelheiten...
Die Idee ist, die vom Benutzer eingegebene URL abzurufen (z. B.www.site.com/product/99999-product-that-cant-be-found
oderwww.site.com/faq/support-question-that-doesnt-exist
), REGEX es, um die Bindestriche zu entfernen und eine Suchabfrage mit auszuführen99999 product that cant be found
odersupport question that doesnt exist
.
Irgendwelche Vorschläge?