0
我是jQuery和Servlets的新手。在一個學校項目上工作,現在我陷入了這個問題。jQuery AJAX調用sevlet不能在錨標記中工作
我在我的proj3.html文件中有一個像這樣的錨標籤左側的導航欄。
<ul class="nav nav-list">
<li class="nav-header">Labels</li>
<li><a href="" class="labels">Sony</a></li>
<li><a href="" class="labels">Spinnin</a></li>
<li><a href="" class="labels">BMG</a></li>
<li><a href="" class="labels">Ultra</a></li>
<li><a href="" class="labels">Universal</a></li>
<li class="nav-header">Genere</li>
<li><a href="" class="genere">Rock</a></li>
<li><a href="" class="genere">Alternative Rock</a></li>
<li><a href="" class="genere">Pop</a></li>
<li><a href="" class="genere">EDM</a></li>
<li><a href="" class="genere">Hip-Hop</a></li>
</ul>
Javascript中我有這個
$('a.labels').on('click',function(e){
var url = "http://example.edu/servlet/SampleQuery";
$.get(url);
e.preventDefault();
}
}
裏面我的servlet SampleQuery.java我從數據庫讀取,並轉發給JSP這樣
RequestDispatcher dispatcher = null;
dispatcher = request.getRequestDispatcher("/jsp/DisplayVendor.jsp");
dispatcher.forward(request, response);
當我點擊任何的錨點標記$.get
被擊中,但我的JSP頁面沒有得到顯示。奇怪的是,如果我檢查網絡流量的螢火蟲,我看到我的AJAX呼叫通過,我甚至可以看到DisplayVendor.jsp頁面的響應。但它沒有得到顯示。
有人可以指出我是否犯了任何錯誤。
感謝
感謝您的回答。我想我會用一個簡單的超鏈接代替。但出於好奇爲什麼不從servlet轉發到使用AJAX的JSP?爲什麼我使用$ .get(url)沒有成功的原因是,我的假設是我不會得到迴應,因爲我正在轉發到新的JSP頁面。 – Sush 2013-04-20 21:52:54
你不明白什麼是轉發。它完全發生在服務器端。該servlet是以請求和響應作爲參數來調用的。它執行其邏輯,然後轉發到JSP。這包括說:我已經完成了我的工作,現在JSP應該儘自己的一部分(具有相同的請求和相同的響應)。所以就好像servlet在自己的doGet()方法的末尾調用另一個servlet的doGet()一樣。然後,JSP動態生成HTML代碼並將其發送給響應。然後你的JavaScript收到響應,並且應該用它做一些事情。 – 2013-04-20 22:13:39