2009-08-12 76 views
2

我想通過爲用戶提供某種「相關搜索」功能(如果它們來自搜索引擎)來提高我網站的可用性。從servlet獲取搜索引擎查詢字符串

從一個servlet中獲取我的網站訪問者是否來自搜索引擎結果頁面是可能的?

如果是,是否可以獲取查詢字符串?

在此先感謝

編輯:感謝Thillo,this is my first approach using Referer header。我並不爲此感到自豪。所有關於此代碼的意見和建議將不勝感激。

回答

5

這將是(特殊拼寫)引用標題。

request.getHeader("Referer"); 

您需要解析它並確定它是否是搜索引擎URL。每個搜索引擎都有不同的指定查詢的方式,例如http://www.google.com/search?q=test

+0

非常感謝,看看這段代碼http://pastebin.com/f1fcaad0b – sourcerebels 2009-08-12 10:39:05

+0

這段代碼看起來不錯。我不認爲有更好的方式可以做到這一點根本不同。匹配主機名稱時,可能需要包含「。」在模式中,或甚至做一個後綴匹配(google.com,bing.com),以避免匹配「notyahoo.com」(即使它不是一個大問題,如果你匹配那些無論如何,再加上那些主機名是不太可能的) 。 – Thilo 2009-08-12 12:09:06