将Json信息从Servlet发送到Javascript

sending Json information from Servlet to Javascript

本文关键字:Javascript Servlet Json 信息      更新时间:2023-09-26

我想创建一个网络应用程序,用于查找每个人每次都在的地方附近最近的超市。

出于这个原因,我创建了一个jsp页面,其中有一个包含我所在地坐标的Map,还有用于显示超市信息和Map中标记的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

您需要告诉servlet容器应该将哪些路径路由到servlet。您可以使用web.xml文件或Servlet类中的注释来完成此操作。例如:

@WebServlet({"/Myservlet/*"})
public class MyServlet extends HttpServlet {
    ...
}

请注意,在您的javascript中,您使用的是"Myservlet",其中类名为Myservlet。类名没有必要与您正在使用的url一致,但这可能会有所帮助。