从javascript ajax post方法调用java servlet

时间:2017-11-29 19:03:50

标签: javascript java ajax jsp servlets

这似乎是一个天真的问题,但我对Java servlet和tomcat来说还是个新手。我试图通过我的javascript文件中的.post方法调用servlet方法。 javascript用于.jsp文件。只要servlet与jsp在同一个目录中,一切正常,但是当我改变文件的路径时,无论我做什么,我都无法工作。我试过这些:

    $.post("./classes/myServlets/WEB-INF/order", $.param(data), function(response) {
    document.getElementById("Table").innerHTML = "Considered table number  " + response + "  for you";
});

    $.post("/classes/myServlets/WEB-INF/order", $.param(data), function(response) {
    document.getElementById("Table").innerHTML = "Considered table number  " + response + "  for you";
});

    $.post("order", $.param(data), function(response) {
    document.getElementById("Table").innerHTML = "Considered table number  " + response + "  for you";
});

    $.post("/classes/myServlets/WEB-INF/order.java", $.param(data), function(response) {
    document.getElementById("Table").innerHTML = "Considered table number  " + response + "  for you";
});

我知道这一定很容易但我无法在任何地方找到指示。提前谢谢。

1 个答案:

答案 0 :(得分:3)

您的servlet在.java文件中定义并编译成存储在WEB-INF文件夹中的类,需要映射到URL(通常在您的web.xml中)。如果没有关于你正在使用什么servlet容器和框架的更多信息来回答这个问题并不容易,但假设你只是使用纯Tomcat(没有像Spring这样的任何框架),你可能会看到你的web.xml文件,如下所示:

<servlet>
    <servlet-name>com.project.Order</servlet-name>
    <servlet-class>com.project.Order</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>com.project.Order</servlet-name>
    <url-pattern>/order</url-pattern>
</servlet-mapping>

通过映射此URL,您可以使用以下某些jQuery发送HTTP POST请求:

$.post("/order", $.param(data), function(response) {
  document.getElementById("Table").innerHTML = "Considered table number  " + response + "  for you";
});