2009-08-12 6 views
2

Ich möchte die Benutzerfreundlichkeit meiner Website verbessern, indem ich Benutzern eine Art "verwandte Suchfunktion" zur Verfügung stelle, wenn sie von einer Suchmaschine kommen.Beziehen Sie Suchanfragenzeichenfolge von einem Servlet

Es ist möglich, von einem Servlet zu erhalten, wenn ein Besucher meiner Website von der Suchergebnisseite kommt?

Wenn ja, ist es möglich, die Abfragezeichenfolge zu erhalten?

Vielen Dank im Voraus

EDIT: Dank Thillo, this is my first approach using Referer header. Ich bin nicht sehr stolz darauf. Alle Kommentare und Vorschläge zu diesem Code werden geschätzt.

Antwort

5

Das wäre der (besonders geschriebene) Referer-Header.

request.getHeader("Referer"); 

Sie müssen es analysieren und entscheiden, ob es sich um eine Suchmaschinen-URL handelt. Jede Suchmaschine hat eine andere Möglichkeit, die Abfrage anzugeben, z. B. http://www.google.com/search?q=test.

+0

Vielen Dank, werfen Sie einen Blick auf diesen Code http://pastebin.com/f1fcaad0b – sourcerebels

+0

Dieser Code sieht gut aus. Ich glaube nicht, dass es einen grundlegend anderen, besseren Weg gibt, dies zu tun. Wenn Sie Hostnamen anpassen, möchten Sie möglicherweise ein "." im Muster, oder sogar eine Postfix-Übereinstimmung (google.com, bing.com), um die Übereinstimmung mit "notyahoo.com" zu vermeiden (obwohl es kein großes Problem ist, wenn Sie diese trotzdem gefunden haben und diese Hostnamen wirklich unwahrscheinlich sind) . – Thilo