Java JSP Jquery AJAX Servlet

问题描述 投票:0回答:1

UPDATE

我不同意建议问题的答案将直接适用于这个问题,因为我使用的是非标准目录结构。

/opt/tomcat/webapps/nothing/
    /public/
        /views/
            /home/
                home.jsp
            /nothing/
                nothing01.jsp
            /partials/
                header.jsp
                footer.jsp
        /logic/
            /nothing/
                nothing01.js
                nothing01test.java
                nothing01test.class
        /resources/
    /WEB-INF/
        web.xml

我在使用Jquery AJAX在我的应用程序中使用JSP Servlet时遇到了一些困惑。

我很可能错过了一步(或完全错误)。

我有我的看法

/public/view/nothing/nothing01.jsp

<% include file="../partials/header.jsp" %>
<button id="buttTest">Test</button>
<% include file="../partials/footer.jsp" %>

它链接到一个Javascript文件,用于对我的Java Servlet进行Jquery AJAX调用

/public/logic/nothing/nothing01.js

$(document).ready(function() {
    $("#buttTest").on("click", function() {
       ajaxTest();
    });
});

function ajaxTest() {

    $.ajax ({
        url      : "nothing01test",
        type     : "GET",
        cache    : false,
        dataType : "json",
        success  : function(results) {
                       console.log("success");
                       console.log(JSON.stringify(results));
                   },
        error    : function(results) {
                       console.log("error");
                       console.log(JSON.stringify(results));
                   }
    });

}

然后我有我的源代码并编译了Java Servlet

/public/logic/nothing/nothing01test.java
/public/logic/nothing/nothing01test.class

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class nothing01test extends HttpServlet {
    protected void doGet (
        HttpServletRequest request,
        HttpServletResponse response
    ) throws
        ServletException,
        IOException
    {
        PrintWriter out = response.getWriter();
        out.println("AJAX RESPONSE");
     }
}

编译工作正常没有任何错误,但我不知道如何使它可用于Jquery AJAX请求,因为请求响应404未找到错误。如果我尝试指定AJAX url指向java和类文件,它只是拉入内容而不是执行。

UPDATE

我将包含web.xml文件以防万一

/WEB-INF/web.xml

<?xml version="1.0" encoding="UTF-8"?>
<!--
      Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                      http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
  version="4.0"
  metadata-complete="true">

  <display-name>Java Web App</display-name>
  <description>
     Welcome to Java Web App
  </description>

  <welcome-file-list>
    <welcome-file>public/views/home/home.jsp</welcome-file>
  </welcome-file-list>

</web-app>
java jquery ajax jsp servlets
1个回答
1
投票

您的AJAX调用不正确,请尝试使用下面的代码替换它

$(document).ready(function() {
    $("#buttTest").on("click", function() {
       ajaxTest();
    });
});

function ajaxTest() {
    $.ajax({
        url      : "nothing01test",
        type     : "GET",
        cache    : false,
        dataType : "json",
        success  : function(results) {
                       console.log("success");
                       console.log(JSON.stringify(results));
                   },
        error    : function(results) {
                       console.log("error");
                       console.log(JSON.stringify(results));
                   }
    });
}
© www.soinside.com 2019 - 2024. All rights reserved.