在ajax中调用java方法

时间:2013-04-11 08:25:44

标签: java ajax jsp

我正在Netbeans Ide中创建一个jsp应用程序。我在调用ajax中的java类方法时遇到问题。是否可以这样做

我的java类是这样的:

public class Hello
{
    public String execute(String s)
    {
        return "success";
    }
}

我无法弄清楚如何使用ajax调用execute方法: 我目前的ajax代码是:

var val="test string";
$.ajax({
type: "GET",
url: "http://localhost:8084/Shade/src/java/mail/Main.execute",
data: val,

async: true,
cache: false,
success: function (msg) {

alert("hi");
$(".col-1").html(msg);
});

提前Thanx:)

2 个答案:

答案 0 :(得分:8)

AJAXAsynchronous JavaScript And XML的首字母缩写。它提供了异步与服务器通信的能力。

为了解释这一点,您可以简单地向服务器发送请求并继续与用户进行用户交互。您无需等待服务器的响应。响应到达后,UI中的指定区域将自行更新并反映响应信息。整页不需要重新加载。

因此,您无法直接以url的形式访问Java类来发出Ajax请求。它应该是任何映射的网址,例如JSPServletsPHP等。

创建JSP(例如hello.jsp

<%
String strResponse;
mail.Main objMain = new mail.Main();
strResponse = objMain.execute();
%>

<%=strResponse %>

在Ajax请求中

url: "hello.jsp",

编辑:添加示例:

<script type="text/javascript" src="js/jquery.min.js"></script> 
<script type="text/javascript">
  $(function(){
      function getData() {
          var dataToBeSent  = {
            uName : $("#userName").val() , //
            passwd: $("#password").val()
            }; // you can change parameter name

          $.ajax({
                url : 'getDataServlet', // Your Servlet mapping or JSP(not suggested)
                data :dataToBeSent, 
                type : 'POST',
                dataType : 'html', // Returns HTML as plain text; included script tags are evaluated when inserted in the DOM.
                success : function(response) {
                    $('#outputDiv').html(response); // create an empty div in your page with some id
                },
                error : function(request, textStatus, errorThrown) {
                    alert(errorThrown);
                }
            });
      }

});

在Servlet / JSP中访问您的参数request.getParameter("uName");

答案 1 :(得分:2)

您无法直接调用该方法。您应该将URL映射到要调用的方法。 这可以在servlet中完成。如果您已经通过Java代码提供页面,则只需添加一种新方法来为包含所需内容的页面提供服务。