向Servlet提交序列化JSON

向Servlet提交序列化JSON,json,servlets,Json,Servlets,我可以成功序列化表单并将其提交到表单中的文本区域,但不知道如何将其发送到我已经创建/定义的Servlet: // Prepare form for Serialize $.fn.serializeObject = function() { var o = {}; var a = this.serializeArray(); $.each(a, function() { if (o[this.name] !== undefined) {

我可以成功序列化表单并将其提交到表单中的文本区域,但不知道如何将其发送到我已经创建/定义的Servlet:

// Prepare form for Serialize
$.fn.serializeObject = function()
{
    var o = {};
    var a = this.serializeArray();
    $.each(a, function() {
        if (o[this.name] !== undefined) {
            if (!o[this.name].push) {
                o[this.name] = [o[this.name]];
            }
            o[this.name].push(this.value || '');
        } else {
            o[this.name] = this.value || '';
        }
    });
    return o;
};

// Send JSON Data to ResultSet
$(function() {
    $('form').submit(function() {
        //submitting to textarea "resultset"
        //needs to submit to servlet "SftpConnTest" as defined in web.xml
        //$('#ResultSet').text(JSON.stringify($('form').serializeObject()));        

        //?? HOW DO I SEND TO "SftpConnTest" SERVLET instead??

       return false;
    });
});

假设您使用HTTP POST将其发送到servlet,则可以使用ajax:

$(function() {
    $('form').submit(function(evt) {
        evt.preventDefault(); // prevent the default form submit behavior
        var data = $('form').serializeObject();
        $.post(
            '/',
            data,
            function(resData, status, req) {
                $('#ResultSet').text(JSON.stringify(resData));
            }
        );
    }
}
如果servlet未映射到web应用程序的根目录,请将$.post函数中的“SftpConnTest”替换为servlet的相对路径。例如,如果servlet映射到/foo/bar/SftpConnTest,那么应该使用“/foo/bar/SftpConnTest”而不是“SftpConnTest”


有关$.post函数的更多信息,请参阅。

使用以下命令通过ajax将表单数据发送到服务器:

$.post("path/to/servlet", $("#formId").serializeArray(), function (result) {
    // do something
});
顺便说一下:


serializeArray将表单转换为数组,数组可以直接用作jquery ajax请求的数据参数,只有表单中具有name属性的元素才会包含在数据中,有关详细信息,请查看jquery api,这一点非常清楚。

您的意思是将数据从JavaScript应用程序发送到Java Servlet?做一个Java Bean怎么样?不,那不会真正起作用,我通过Servlet控制逻辑提交给JavaBean。好吧,我想它可以工作,但我已经有了这样的工作方式。谢谢,谢谢。快到了,但不太管用!此行$'ResultSet'.textJSON.stringifydata;仍然提交到文本区域。我尝试了textJSON.stringifydata;但它没有屈服。SftoConnTest在根目录下定义。我要看看你发来的链接,看看我能不能弄明白。再次感谢。第$'ResultSet'.textJSON.stringifydata行将从servlet获取响应并将其放入文本区域。如果这不是你想做的,我道歉,我想这是你最初的问题。现在到底有什么不起作用?在过去的几周里,我刚刚开始研究servlet的内容,所以我对它记忆犹新。也许我可以帮你更多的忙。非常感谢你的好意和急需的帮助。我确实希望返回一个响应,但是servlet提交给其他bean,然后将成功/失败发送回servlet,我希望将结果发送回ResultSet文本区域。现在发生的事情是,它没有提交到Servlet,它只是将数据直接发送到textarea。这是web.xml SftpConnTest SftpConnTest comm.fxndiag.SftpConnTest这是表格,您可以在web.xml文件中发布1您的servlet代码,2您的元素吗?请检查我的更新答案,我最初编写时漏了一行。