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