因為使用者登陸後要提供文獻搜尋,即直接到nutch搜尋介面,然後在此介面上再兩個串連,一個是個人空間管理,一個是全域文件剖析,那麼如何將nutch的搜尋結合起來呢?下面是兩種方案
1.單獨做一個web註冊登陸應用,然後登陸成功後,直接在轉到nutch的搜尋,即從tomcat中的webapp裡的一個使用者項目轉到另一個項目,將請求從這個登陸項目直接在伺服器內部轉移到nutch.war解壓出的對應搜尋項目。此種情況就要用redict來進行重新導向,因此此種情況,會將請求request資料丟失,所以在重新導向時,需要將參數傳過去,這個是用戶端跳轉,此時地址欄改變跳轉,效率低,速度慢
2.直接在nutch對應的搜尋項目中添加自己的登陸應用,此時就可以用forward來進行轉寄,這個是伺服器端跳轉,地址欄不改變跳轉,效率高,速度快,使用<jsp:param name=”” value=”” />傳遞參數,但這種方法不能讓請求從一個項目直接在伺服器內部轉移到另一個項目。在執行forward的時候是把項目的路徑當作根目錄,開發人員根本看不到其他項目。但由於要雜在nutch的搜尋源碼中修改,所以看起來會有點亂,不好區分
為了區分開,以免影響nutch搜尋代碼,盡量少動源碼,還是選擇第一種,分成兩個不同的項目,使用redict來結合兩個項目
關於JSP重新導向和轉寄的區別:
注意兩種方法在相對路徑和絕對路徑下的區別
參考資料:
1.http://zhidao.baidu.com/question/91256729.html?fr=qrl&cid=1073&index=5
2.http://www.iteye.com/topic/372941
3.http://hi.baidu.com/168zlf/blog/item/696ae18b44a209799e2fb483.html
4.http://77857.blog.51cto.com/67857/167022
問題:
用redict來實現時,需要將使用者名稱參數傳過去,而此時需要指定具體URL路徑才行,而nutch本身首頁面就要根據不同國家語言進行轉寄,這樣就破壞了原有的根據系統語言實現自動轉寄,而將URL指定成具體的一種語言下的路徑,URL變成人為指定的了,破壞了原有的根據不同語言來選擇首頁,所以後面有時間,還是要把註冊登陸部分的代碼融合到nutch的搜尋源碼中