在AJAX中处理servlet输出

我的问题:我正在从JSP中的AJAX函数向Servlet发送请求。

Servlet处理数据并返回ArrayList

我的问题是如何处理ArrayList内部AJAX,并将其显示为同一JSP中的表格。

该代码是

function ajaxFunction ( ) {

// var url= codeid.options[codeid.selectedIndex].text;

url="mstParts?caseNo=9&cdid=QCYST0020E1";

// alert(cid);

var httpRequest;

if (window.XMLHttpRequest) {

httpRequest = new XMLHttpRequest();

} else if (window.ActiveXObject) {

httpRequest = new ActiveXObject("Microsoft.XMLHTTP");

}

if (httpRequest == null){ alert('null');}

alert(url);

httpRequest.open("GET", url, true );

httpRequest.onreadystatechange = function() { alertContents(httpRequest); };

//httpRequest.setRequestHeader('Content-Type', 'text/plain');

httpRequest.send(null);

alert('t1');

}

function alertContents(httpRequest) {

if (httpRequest.readyState == 4) {

var cType =httpRequest.getResponseHeader("Content-Type");

//document.write(httpRequest.toString());

// alert(cType);

// var xmlDoc=httpRequest.responseText;

//document.write(xmlDoc.toString());

// if (xmlDoc == null) {alert('null returned');}

if (!httpRequest.status == 200) {

alert('Request error. Http code: ' + httpRequest.status);

}

else

{

var profileXML = eval(<%=request.getAttribute("data")%>);

if ( profileXML != null){ alert('null'); }//else { alert(profileXML(0)); }

// httpRequest.getAttribute("data");

}

}

}

回答:

var profileXML = eval(<%=request.getAttribute("data")%>);

首先,我建议您了解JavaScript和JSP之间的隔the。JS完全在 运行,而JSP / Java完全在

运行。它们肯定不会像您认为的那样同步运行。要了解更多信息,请阅读此博客文章。

function ajaxFunction ( )

其次,我建议您使用具有jQuery之类的

Ajaxical功能的,健壮的,经过充分开发的,维护良好的JavaScript库,而不是重新发明AJAX滚轮并与浏览器特定的问题/麻烦/行为/痛苦打交道/苦苦挣扎/烦恼。我还建议使用JSON作为服务器Java

Servlet和客户端JavaScript之间的数据传输格式。在Java方面,您可以为此使用出色的Gson库。

这是所有提到的技术的启动示例。让我们从Servlet和JavaBean开始:

public class JsonServlet extends HttpServlet {

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

List<Data> list = dataDAO.list();

response.setContentType("application/json");

response.setCharacterEncoding("UTF-8");

response.getWriter().write(new Gson().toJson(list));

}

}

public class Data {

private Long id;

private String name;

private Integer value;

// Add/generate getters/setters.

}

JsonServlet(你可以命名为任何你想要的,这只是一个简单的例子)应该被映射web.xml在一个已知的url-

pattern,让我们用/json这个例子。该类Data仅代表HTML表(和数据库表)的一行。

现在,这是如何使用jQuery.getJSON加载表的方法:

$.getJSON("http://example.com/json", function(list) {

var table = $('#tableid');

$.each(list, function(index, data) {

$('<tr>').appendTo(table)

.append($('<td>').text(data.id))

.append($('<td>').text(data.name))

.append($('<td>').text(data.value));

});

});

tableid过程的表示id所述的<table>有问题的元素。

应该是这样。毕竟这很简单,请相信我。祝好运。

以上是 在AJAX中处理servlet输出 的全部内容, 来源链接: utcz.com/qa/410720.html

回到顶部