Ajax通过jQuery和响应打印致电Servlet



我想对servlet进行ajax调用并打印响应。我已经编写了index.htmlAssignemnt Servlet和web.xml,但我没有得到警报。怎么了?

index.html

<!DOCTYPE html>
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js">
    <script>
    $(document).ready(function() {
        $("button").click(function() {
            $.get("Assignment", function(data, status) {
                alert("Data: " + data + "nStatus: " + status);
            });
        });
    });
</script>
<title>Insert title here</title>
</head>
<body>
    <form method="GET" action="Assignment" name="showall">
        <table>
            <tr>
                <td><input type="checkbox" name="id1" /></td>
                <td>Jim</td>
                <td>Knopf</td>
            </tr>
            <tr>
                <td><input type="checkbox" name="id2" /></td>
                <td>Jim</td>
                <td>Bean</td>
            </tr>
        </table>

        <p>
            <button>Send an HTTP GET request to a page and get the
                result back</button>
        </p>
    </form>
</body>
</html>

servlet:

protected void doGet(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        System.err.println("-------++++");
        String data = "Hello World!";
        response.setContentType("text/plain");
        response.setCharacterEncoding("UTF-8");
        response.getWriter().write(data);
        //RequestDispatcher rd = request.getRequestDispatcher("/Assignment");
        RequestDispatcher rd = request.getRequestDispatcher("/index.html");
        rd.forward(request, response);
    }

servlet映射:

 <servlet>
    <description>FirstAssignment</description>
    <display-name>Assignment</display-name>
    <servlet-name>Assignment</servlet-name>
    <servlet-class>com.Assignment</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>Assignment</servlet-name>
    <url-pattern>/Assignment</url-pattern>
  </servlet-mapping>

您根本不需要转发响应。它将覆盖text/plain响应。删除这些行:

//RequestDispatcher rd = request.getRequestDispatcher("/Assignment");
RequestDispatcher rd = request.getRequestDispatcher("/index.html");
rd.forward(request, response);

另请参见:

  • 如何使用servlet和ajax?

与混凝土问题无关的,必须用一大袋盐来服用W3Schools教程。例如,$("button")选择器是一个非常糟糕的建议,因为在HTML文档中,这会影响,而您宁愿将AJAX函数绑定到仅通过某些ID标识的一个特定按钮的每个 <button>元素。

最新更新