将JSP值返回给AJAX调用

时间:2017-02-28 17:22:45

标签: java ajax jsp

我对JSP进行了一次AJAX调用,后者又在一个单独的Java类中调用Java方法。所有文件都在同一个文件夹中。

由于某种原因,我无法获得返回给AJAX的正确值。它只是打印整个JSP内容。

JavaScript的:

var xhr = new XMLHttpRequest();

xhr.onload = function() {
    if(true){
        alert('hello!');
        var response = xhr.responseText;
        alert(response);
        document.getElementById('newgame').innerHTML = xhr.responseText;

    }
};

xhr.open('GET', 'javaconnect.jsp', true);
xhr.send(null);

JSP:

<%@ page import="com.example.Server"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>

  <%
   Server tc = new Server();
      out.print(tc.highScore());

  %>


</body>
</html>

Java类:

    package com.example;
     public class Server {


    public String highScore() {


        return "hello!!!";

    }

}

1 个答案:

答案 0 :(得分:0)

最好的解决方案是使用Servlet来代替实例化Server类的jsp,例如:

public class HelloWorld extends HttpServlet {

    protected void doGet (HttpServletRequest request,
                                HttpServletResponse response)
                throws ServletException, IOException {

        Server tc = new Server();
        String txt = tc.highScore();

        response.setContentType("text/plain");
        response.setCharacterEncoding("UTF-8");
        response.getWriter().write(txt);
    }

}

不要忘记映射servlet并更改ajax调用的url。 你可以试试