从网页中的java servlet检索数据

时间:2012-07-11 09:12:47

标签: java javascript ajax servlets

我有一个显示一些信息的网页。在我的网页中,我有很多共同参与者(lon,lat),我想创建一个java类来管理这些coords。

我想要做的是在显示coords之前,将它们发送到java servlet。这个servlet会对它们进行封装并发送回网页来显示它们。

我希望网页不刷新所以我认为我需要ajax来调用servlet,我或多或少地控制它。但我不知道如何从网页上接收java中的数据。

我在过去创建了一些servlet但总是使用javascript调用java函数。通过这种方式实现它的问题是Web浏览器转到其他网页(带有java调用的jsp)。

我还没有订购coords的代码,但我正在使用它来尝试:

package ordenacion;

public class OrdenarListaPuntos {


public static String ordenar(String cadenaDesordenada){  //String unordered
    String cadenaOrdenada;

//here goes the code for ordering
    cadenaOrdenada = cadenaDesordenada;
    return cadenaOrdenada; //String ordered
}
}

我只知道如何使用jsp从javascript调用java函数,而不是从其他服务器中的其他网页调用java函数,或者没有刷新网页......

你对我应该怎么做有什么想法吗?或者我应该读些什么呢?

1 个答案:

答案 0 :(得分:3)

你需要做一些阅读,因为你试图掌握的不仅仅是一个简单的概念。 看看这些是一个开始;

How do you send an array as part of an (jquery) ajax request

http://codesstore.blogspot.co.uk/2011/12/json-with-jquery-jsp-servlets.html

http://viralpatel.net/blogs/creating-parsing-json-data-with-java-servlet-struts-jsp-json/

http://srikanthtechnologies.com/blog/java/jobs_employees_jquery.html

最后,您将使用此基本结构。您将使用POST而不是我在此处提到的GET

var valSend =“aSingleParam”;

var url = "/yourApplicationWebContext?paramPassed="+valSend;
console.log(url);
$.ajax({
    url: url,
    type: "GET",
    dataType: "json",
    success: function(data) {
    console.log("Data returned : " + data);



        if (typeof data == 'object') {

                }

        },
    error: function(jqXHR, textStatus, errorThrown) {
        console.log("jqXHR : "+jqXHR + " text status : " + textStatus + " error : " + errorThrown);
        }
    });

Java Servlet Side .......

您的web.xml将有一个servlet和相应的servlet映射;

servlet mapping

//您的Java Servlet类

包com.xyz;

public class ServlvetClassName扩展了HttpServlet {

// ajax调用中的类型:“GET”将触发doGet将处理的“get”

protected void doGet(HttpServletRequest req, HttpServletResponse response)
        throws ServletException, IOException {

        if(null!= req.getParameter("paramPassed")){

         // get and use your parameter, which "is paramPassed"..... 

        }


        }

//类型:ajax调用中的“POST”将触发doPost将处理的“post”

protected void doPost(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException {

    this.doGet(req, resp);
}

}