【发布时间】:2015-12-21 00:36:28
【问题描述】:
我想创建一个网络应用程序,用于查找每个人经常去的地方附近最近的超市。
出于这个原因,我创建了一个 jsp 页面,其中有一个带有我所在位置坐标的地图,以及用于显示超市信息和地图中标记的 js。在我的 js 中,我试图从带有 json 表单的 Servlet 获取所有最近的超市信息。 但是当我运行它时,它不会出现任何东西。你真的能帮帮我吗?
//这是我的js:
function main1() {
$.ajax({
url: 'Myservlet',
type: 'json',
data: {
latitude: pos[0],
longitude: pos[1],
map: map
},
success: function(data){
drawMap(data);
drawTable(data);
}
});
}
function drawMap(data){
var infowindow = new google.maps.InfoWindow();
var marker, i;
for (i = 0; i < data.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(data[i].latd, data[i].longd),
map: map
});
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.setContent(data[i].name, data[i].region);
infowindow.open(map, marker);
}
})(marker, i));
}
}
//在我的Servlet中
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import package1.DB.*;
import com.google.gson.Gson;
import java.lang.*;
public class MyServlet extends HttpServlet {
public MyServlet(){
super();
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
response.setContentType("text/html; charset=ISO-8859-7");
PrintWriter out = new PrintWriter(response.getWriter(), true);
List<Markets> super_markets;
try{
DB db=new DB();
super_markets=db.getNearestMarkets(request.getParameter("latitude"),request.getParameter("longitude"));
String json = new Gson().toJson(super_markets);
response.getWriter().write(json);
} catch (Exception ex) {
out.println("Exception: " + ex.getMessage());
out.println("</body>");
out.println("</html>");
}
}
}// End of class
【问题讨论】:
-
我不太了解 Java,但您的谷歌地图 JS 代码似乎是正确的。 我会仔细检查几件事: 1. 您在成功回调中收到正确的 数据 2.
data[i].latd和data[i].longd是您想要的 您可以在浏览器中使用简单的 console.log 检查值 -
您提到了 JSP,但您的问题中没有 JSP。
-
您没有在注释中为您的 servlet 的 url 指定
urlPatterns。您是在 web.xml 文件中执行此操作吗? -
在我的 jsp 中,一个带有地图的 jave 脚本,还有这个
标签: javascript json jsp servlets