2009-08-12 5 views
2

Je souhaite améliorer la convivialité de mon site en fournissant aux utilisateurs une sorte de fonctionnalité de "recherche associée" s'ils proviennent d'un moteur de recherche.Obtenir une chaîne de requête de moteur de recherche à partir d'une servlet

Il est possible, à partir d'une servlet, d'obtenir si un visiteur de mon site provient de la page de résultats du moteur de recherche?

Si oui, est-il possible d'obtenir la chaîne de requête?

Merci à l'avance

EDIT: Merci Thillo, this is my first approach using Referer header. Je n'en suis pas très fier. Tous les commentaires et suggestions sur ce code seront appréciés.

Répondre

5

Ce serait l'en-tête Referer (particulièrement épelé).

request.getHeader("Referer"); 

Vous devez l'analyser et décider s'il s'agit d'une URL de moteur de recherche. Chaque moteur de recherche a une manière différente de spécifier la requête, par exemple http://www.google.com/search?q=test.

+0

Merci beaucoup, jetez un oeil à ce code http://pastebin.com/f1fcaad0b – sourcerebels

+0

Ce code semble très bien. Je ne pense pas qu'il existe une façon fondamentalement différente de le faire. Lors de la correspondance des noms d'hôte, vous pouvez inclure un "." dans le motif, ou même faire une correspondance postfix (google.com, bing.com), pour éviter de faire correspondre "notyahoo.com" (même si ce n'est pas un gros problème si vous correspondiez de toute façon, plus ces noms d'hôtes sont vraiment improbables) . – Thilo

Questions connexes