使用 jquery 从 jsp 调用带注释的 HttpServlet
Call annotated HttpServlet from jsp with jquery
我尝试实施我的第一个 JavaEE 项目,但是当我尝试在我的 HttpServlet 上调用 GET 时,我总是遇到 404 错误。我已经阅读了很多 SO 帖子和教程,但我找不到任何解决方案。
这是我的 index.jsp
<%--
Created by IntelliJ IDEA.
User: molnard
Date: 2017. 06. 13.
Time: 10:03
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Learn Jsp</title>
<script src="/lib/jquery-3.2.1.min.js"></script>
<script>
$(document).ready(function () {
$("#myspan").click(function () {
$.ajax({
type: "GET",
url: "/FirstServlet",
success: function () {
window.alert("Success");
},
});
});
});
</script>
</head>
<body>
<%int age = 34;%>
<%String name = "Daniel"; %>
<%String numberOfProject = "first";%>
<span id="myspan">My name is <%=name%> and I'm <%=age%> years old. This is my <%=numberOfProject%> jsp project.</span>
</body>
</html>
这是我的 Servlet,由 Intellijpackage servlet 生成;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* Created by molnard on 2017. 06. 13..
*/
@WebServlet(name = "FirstServlet")
public class HttpServlet extends javax.servlet.http.HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
我可以在浏览器控制台上看到这个错误:`
GET http://localhost:8080/FirstServlet 404 ()
这是我的项目结构
您的 @WebServlet(name = "FirstServlet")
注释没有 url 模式。
您可以尝试添加 url 模式:
@WebServlet(name = "MyOwnServlet", urlPatterns = "/FirstServlet")
或者像这样:
@WebServlet("/FirstServlet")
最后,您可以使用 contextPath 访问任何地方:
${pageContext.request.contextPath}/FirstServlet
我尝试实施我的第一个 JavaEE 项目,但是当我尝试在我的 HttpServlet 上调用 GET 时,我总是遇到 404 错误。我已经阅读了很多 SO 帖子和教程,但我找不到任何解决方案。 这是我的 index.jsp
<%--
Created by IntelliJ IDEA.
User: molnard
Date: 2017. 06. 13.
Time: 10:03
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Learn Jsp</title>
<script src="/lib/jquery-3.2.1.min.js"></script>
<script>
$(document).ready(function () {
$("#myspan").click(function () {
$.ajax({
type: "GET",
url: "/FirstServlet",
success: function () {
window.alert("Success");
},
});
});
});
</script>
</head>
<body>
<%int age = 34;%>
<%String name = "Daniel"; %>
<%String numberOfProject = "first";%>
<span id="myspan">My name is <%=name%> and I'm <%=age%> years old. This is my <%=numberOfProject%> jsp project.</span>
</body>
</html>
这是我的 Servlet,由 Intellijpackage servlet 生成;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* Created by molnard on 2017. 06. 13..
*/
@WebServlet(name = "FirstServlet")
public class HttpServlet extends javax.servlet.http.HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
我可以在浏览器控制台上看到这个错误:`
GET http://localhost:8080/FirstServlet 404 ()
这是我的项目结构
您的 @WebServlet(name = "FirstServlet")
注释没有 url 模式。
您可以尝试添加 url 模式:
@WebServlet(name = "MyOwnServlet", urlPatterns = "/FirstServlet")
或者像这样:
@WebServlet("/FirstServlet")
最后,您可以使用 contextPath 访问任何地方:
${pageContext.request.contextPath}/FirstServlet