2014-10-18 233 views
0

如何在javascript变量中获取servlet响应消息是否有任何可能的方式来获取java脚本中的响应消息?如何在javascript中获取servlet响应?

Html: 

<form method="post" id="importForm"> 
Name<input type="text" name="name"/> 
<input type="submit" onclick="importScenarioFromServer();"> 
</form> 

javascript: 

function importScenarioFromServer(){ 
    var result = document.forms["importForm"].submit(); 
} 

servlet: 

int numberOfRecs = db.setDBValue(dMap); 
if (numberOfRecs == 1) { 
String result = "success"; 
response.getWriter().print(result); 
} 
+1

使用AJAX,如果你不想刷新页面,这个[JQuery的AJAX#(http://api.jquery.com/jquery.ajax/)会来派上用场。 – Arvind 2014-10-18 10:04:13

+0

@arvind我正在发送多部分请求,但是,ajax不支持多部分请求。 – javasundaram 2014-10-18 10:06:00

+0

看到这个:http://stackoverflow.com/questions/12831680/jquery-ajax-multipart-form-data-not-sending-data – Amy 2014-10-18 10:20:25

回答

1

这可以在javascript中使用ajax或者使用jQuery来实现。 我们可以通过ajax命中序列化表单,然后可以从成功事件回调函数中获取来自servlet的响应数据。下面是例子...

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); 
} 


Servlet post method 

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    // TODO Auto-generated method stub 
    PrintWriter out=response.getWriter(); 
    log.info("Good"); 
    out.println("Good to go"); 
} 
相关问题