clickstream是opensymphony上的一個(gè)開(kāi)源項(xiàng)目,其目的是用于跟蹤用戶在web服務(wù)器上的瀏覽歷史.通過(guò)這個(gè)模塊得到的歷史數(shù)據(jù),可以分析出用戶訪問(wèn)網(wǎng)站的路徑,瓶頸,熱點(diǎn)連接等,并根據(jù)這些數(shù)據(jù)對(duì)系統(tǒng)功能做出適當(dāng)調(diào)整.
其設(shè)計(jì)的出發(fā)點(diǎn)是利用servlet的filter,在每次對(duì)servlet的訪問(wèn)時(shí)就日志.日志的實(shí)現(xiàn)主要是通過(guò)在當(dāng)前用戶的session中設(shè)置一個(gè)clickstream的跟蹤對(duì)象.并利用HttpSessionListener來(lái)跟蹤session的創(chuàng)建,銷毀事件,從而達(dá)到跟蹤一個(gè)用戶的瀏覽歷史功能.
雞蛋里挑點(diǎn)骨頭吧!
1.clickstream只有在用戶訪問(wèn)servlet時(shí)才能實(shí)現(xiàn)跟蹤的目的.如果網(wǎng)站有很多的靜態(tài)頁(yè)面,那么就無(wú)法通過(guò)它來(lái)跟蹤了,還是apache的日志好啊!
2.clickstream在每個(gè)對(duì)servlet的訪問(wèn)都創(chuàng)建了一個(gè)session,這對(duì)很多不需要session的servlet來(lái)說(shuō),是不必要的.對(duì)于高并發(fā)訪問(wèn)的系統(tǒng),這會(huì)增加系統(tǒng)的負(fù)荷,尤其是如果站點(diǎn)是采用集群的話,更會(huì)帶來(lái)大量的session復(fù)制的性能問(wèn)題.我建議才系統(tǒng)剛上線的時(shí)候或者有功能的重要更新的時(shí)候可以利用它來(lái)跟蹤用戶,以分析用戶行為,改進(jìn)系統(tǒng).