【问题标题】:Java class call in Ajax without servlet or struts没有 servlet 或 struts 的 Ajax 中的 Java 类调用
【发布时间】:2018-06-10 05:40:20
【问题描述】:

我是学习 Ajax 的新手,想知道是否可以直接在 $.ajax() 调用中调用 Java 类方法,如下例所示:

$.ajax({
    url: "com.myPackage.MyClazz#myMethod()",
    ...
})


public class MyClazz {
  public #returnType myMethod() {
     ....//mystuff
  }
}

到目前为止,我已经阅读了 thisthis 以及互联网上关于 Ajax 的大量帖子和博客,但似乎没有一个直接或间接地回答我的问题。

如果有人只能提供一个示例,说明我应该在 url 参数中写什么来直接调用服务器端 Java 方法,那就太好了。

【问题讨论】:

    标签: javascript java ajax


    【解决方案1】:

    不,您不能,但您可以发送一些参数并过滤该参数以调用您的方法。

    $.ajax({
        url : 'YourURLToServlet',
        data : {
            requestType:"getMyMethod",
            pageTimeDuration : $("#durVal").text(),
    
        },
        type : 'POST',
        dataType : 'text',
        success : function(response) {
            // do here what you want to
        },
        error : function(request, textStatus, errorThrown) {
            console.log(request, textStatus, errorThrown);
        }
    });
    
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
    
    
    
        String type = request.getParameter("requestType");
        if (type != null) {
            if (type.equals("getMyMethod1")) {
                getMyMethod1(request, response);
            }
            if (type.equals("getMyMethod2")) {
                getMyMethod2(request, response);
            }
    
    
        }
    }
    

    【讨论】:

    • 谢谢@Ullas,但你能解释一下请求类型和pagetimeduration吗?它会做什么?另外,能否请您为此提供服务器端实现?
    • requesttype 和 pagetimeduration 是您可以传递给 servlet 的简单自定义参数。假设您在 servlet 类 foo 和 foon 中有两个方法,它们从客户端捕获一些输入。要调用它们,您可以在 requestType 中发送 1 和 2 并将其映射到那里以通过 switch 或 if else 调用它们。
    • 是的,当然...但是最后一个查询...您能否也澄清一下为什么不能直接调用 Java 类方法?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-15
    • 2016-09-05
    • 2012-04-25
    • 1970-01-01
    • 2015-01-15
    • 2012-07-05
    相关资源
    最近更新 更多