如何从div中的servlet获取响应数据?

时间:2011-05-20 09:42:00

标签: javascript html servlets

我有这个简单的html代码片段,每当我点击服务器将发回一些字符串的任何按钮时,我希望它显示在#response div中。

<form target="_self" method="post">
    <table>
        <tr>
            <td width="35"><input type="button" id="btncreate" value="create" onclick="getData();"></td>
            <td width="35"><input type="button" id="btnupdate" value="update"></td>
            <td width="30"><input type="button" id="btndelete" value="delete"></td>
        </tr>
        <tr>
            <td>Name : </td>                    
            <td><input type="text" id="name" value=""></td>
        </tr>
        <tr>
            <td>File : </td>
            <td><input type="file" id="filname" value=""></td>
        </tr>
    </table>
</form>
<div id="response"></div>

在JS中,我使用基于浏览器的XMLHttpRequestActiveXObject向servlet发送请求,我可以在client.responseText()中获取响应,那么如何将此输出定向到我的{ {1}} div?

这是我的JS

#response

Servlet post方法

function getData()
{
var client;
var data;
var url_action="/temp/getData";
if(window.XMLHttpRequest)
{
    client=new XMLHttpRequest();
}
else
{
    client=new ActiveXObject("Microsoft.XMLHTTP");
}
client.onreadystatechange=function()
{
    if (client.readyState==4 && client.status==200)
    {
         document.getElementById("response").innerHTML=client.responseText; 
    }
};
data="name="+document.getElementById("name").value+"&file="+document.getElementById("filname").value;
client.open("POST",url_action,true);
client.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
client.send(data);
}

但是使用js脚本而不是jquery,我无法从servlet

获取输出

感谢所有jQuery代码,Javascript中的任何替代方法?

3 个答案:

答案 0 :(得分:2)

简单地做

success: function(data) { 
var res = client.responseText();
$('#response').html(res);
// or $('#response').append(res); 
});

以简单的 java脚本document.getElementById("response").innerHTML=res;

答案 1 :(得分:2)

如果您在项目中使用jQuery:

$('#response').load("http://url...")

http://api.jquery.com/load/

答案 2 :(得分:1)

由于您使用的是jQuery(基于问题标签的假设),您可以使用.load()-method

$('#some-button').click(function (e) {
    e.preventDefault();
    $('#response').load('url/to/entry/point');
});

这有利于jQuery为您完成所有ajax工作(创建和处理XMLHttpRequest和ActiveX东西)。