簡體   English   中英

將Json信息從Servlet發送到Javascript

[英]sending Json information from Servlet to Javascript

我想創建一個Web應用程序,以查找每個人每次都在的地方附近最近的超市。

因此,我創建了一個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

您需要告訴servlet容器應將哪些路徑路由到servlet。 您可以使用web.xml文件或Servlet類中的注釋來執行此操作。 例如:

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

請注意,在您的JavaScript中,您正在使用“ Myservlet”,其中您的類名是MyServlet。 類名不必與您使用的URL一致,但這可能會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM