【发布时间】:2017-12-07 14:56:37
【问题描述】:
更新
我不同意建议问题的答案将直接适用于该问题,因为我使用的是非标准目录结构。
/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 not found 错误响应。如果我尝试指定 AJAX url 指向 java 和 class 文件,它只会拉入内容而不是执行。
更新
我将包含 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>
【问题讨论】:
-
我猜你的 web.xml 是正确的(?)
-
我没有对 web.xml 做任何事情,我应该做吗?
-
特伦特,你的
nothing01testservlet 没有映射到任何 URL 是真的吗?引用问题中的accepted answer 提到了这一点。搜索以“将此 servlet 映射到 URL 模式”开头的段落
标签: java jquery ajax jsp servlets