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>
您的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));
}
});
}